相关疑难解决方法(0)

你能教导实体框架识别表达吗?

我有一个使用实体框架的搜索功能.您可以搜索的其中一项是日期范围.您可能会说"SearchStart和Search End之间的开始日期".使用linq语法编写并不困难,但是当您有许多不同的日期参数要搜索时,它会变得非常冗长.

我在DateTime上有一个扩展方法,它基本上检查StartDate和EndDate之间的日期.我在EF不是问题的其他地方使用它,但我也想在EF查询中使用它.我通过在执行ToList(将尝试运行查询)之前应用其他WHERE子句来动态创建查询.

正如我所料,使用扩展方法抛出异常:"LINQ to Entities无法识别方法'Boolean IsBetween(System.DateTime,System.DateTime,System.DateTime)'方法,并且此方法无法转换为商店表达."

我知道Linq to Entities无法知道IsBetween在Sql中的转换,但有没有办法让我给它指示?我尝试在网上搜索答案,但这并不是很有帮助.如果有一些属性我可以添加到扩展方法或某种方式我可以更新EF配置?

我猜不是,但我不想在不问的情况下假设.

谢谢!

更新:添加扩展方法代码

 public static bool IsBetween(this DateTime date , DateTime start, DateTime end)
 {
   return (date >= start && date < end);
 }
Run Code Online (Sandbox Code Playgroud)

c# extension-methods entity-framework

2
推荐指数
1
解决办法
1256
查看次数

标签 统计

c# ×1

entity-framework ×1

extension-methods ×1