作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有以下代码:
public void SalesCount(string customerId)
{
..
..
return ...;
}
var resultQuery = dataContext.Customers
.Where (c => c.Name == "Alugili")
.Where (c => SalesCount(c.CustomerId) < 100);
当我执行 resultQuery 时,我得到了一个 SQL 异常的转换。
我需要在 Where 中调用 SalesCount 是否有任何解决此问题的方法!
最佳答案
你根本做不到。你不能直接在SQL服务器上执行C#代码,只能使用Expressions
和一些特殊的可识别函数...
除非您在 LINQ-to-Objects 中转换您的查询(至少部分转换)...
var resultQuery = dataContext.Customers
.Where (c => c.Name == "Alugili")
.AsEnumerable()
.Where (c => SalesCount(c.CustomerId) < 100);
请注意,最后一个 Where
将在客户端执行,因此将从数据库中获取许多无用的行。
关于c# - 如何在 Linq to Entities 查询中调用本地方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18714821/
我是一名优秀的程序员,十分优秀!