有没有办法为 Linq2Entities 的附加功能定义 SQL 转换组件。
例如:
myQuery.Where(entity => entity.Contains('foo', SearchFlags.All))
理想情况下,我正在寻找不需要直接编辑和构建新版本 EntityFramework.dll 的东西。有没有办法允许扩展方法到可以支持 SQL 生成的实体框架。
到目前为止,我有一个模板可以代表我需要为 LINQ to Entities 替换的方法:
public static bool Contains(this object source, string searchTerms, SearchFlags flags)
{
return true;
}
当然这会导致错误:
LINQ to Entities 无法识别方法 'Boolean CONTAINS(System.Object, System.String, SearchFlags)' 方法,并且此方法无法转换为存储表达式。
明确地说,我不想这样做:
myQuery.AsEnumerable().Where(entity => entity.Contains('foo', SearchFlags.All))
因为我希望能够在 SQL 空间中执行代码,而不是手动返回所有实体。
我也不能使用.ToString()
ofIQueryable
并手动执行它,因为我需要 Entity Framework 来填充来自多个.Include
连接的对象。