gpt4 book ai didi

c# - 如何在 Linq to Entities 查询中调用本地方法?

转载 作者:太空狗 更新时间:2023-10-29 20:04:49 26 4
gpt4 key购买 nike

我有以下代码:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com