我有一个带有属性的类,该属性包含json格式的序列化数据:
public class MyObject
{
public string SerializedData
{
get
{
...
}
set
{
...
}
}
}
对象是实体框架数据库对象的属性:
public class MyRecord
{
public int Id { get; set; }
public MyObject Item { get; set; }
}
我现在正尝试编写LINQ语句来检查序列化的字符串是否包含我的搜索文本。我正在动态构建LINQ语句:
var predicate = PredicateBuilder.New<TEntity>();
var param = Expression.Parameter(typeof(TEntity), typeof(TEntity).Name);
Expression property = Expression.Property(param, type.Name);
Expression contains = Expression.Call(
property, "Contains",
null,
new[] { Expression.Constant("test") });
predicate.Or(Expression.Lambda<Func<TEntity, bool>>(contains, param));
我的对象不包含“包含”方法,因此我添加了一个:
public class MyObject
{
...
public bool Contains(string value)
{
return true;
}
}
查询运行时,出现以下错误:
LINQ to Entities无法识别方法“ Boolean Contains(System.String)”方法,并且该方法无法转换为商店表达式。
我不确定我是否正在以正确的方式来处理这个问题?
有人可以帮忙吗?
谢谢