Ada*_*dan 1 entity-framework dynamicquery
我遇到动态Linq库的问题.我收到以下错误"ParserException未被用户代码处理")"或','".我有一个Dicitionary,我想基于这个字典创建一个查询.所以我遍历我的字典并附加到字符串构建器"PersonId =(GUID FROM DICTIONARY).我认为问题是因为某些原因我附加到PersonId我似乎无法将我的字符串guid转换为Guid所以动态库不会崩溃.
我试过这个把我的字符串guid转换为guid,但没有运气.
query.Append("(PersonId = Guid(" + person.Key + ")");
query.Append("(PersonId = " + person.Key + ")");
Run Code Online (Sandbox Code Playgroud)
我正在使用VS 2010 RTM和RIA服务以及实体框架4.
//This is the loop I use
foreach (KeyValuePair<Guid, PersonDetails> person in personsDetails)
{
if ((person.Value as PersonDetails).IsExchangeChecked)
{
query.Append("(PersonId = Guid.Parse(" + person.Key + ")");
}
}
//Domain service call
var query = this.ObjectContext.Persons.Where(DynamicExpression.ParseLambda<Person, bool>(persons));
Run Code Online (Sandbox Code Playgroud)
请帮忙,如果您知道更好的方法,我愿意接受建议.
对于GUID与动态linq的比较,请使用查询属性和所提供示例中的Equals()方法.
var items = new[]
{
new { Id = Guid.Empty },
new { Id = Guid.NewGuid() },
new { Id = Guid.NewGuid() },
new { Id = Guid.NewGuid() }
};
var result = items.AsQueryable()
.Where("Id.Equals(@0)", Guid.Empty)
.Any();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1865 次 |
| 最近记录: |