gpt4 book ai didi

c# - LINQ 到 SQL : If database return no values Count() throws an exception

转载 作者:太空宇宙 更新时间:2023-11-03 19:35:18 24 4
gpt4 key购买 nike

我有一个 linq to sql 语句,它将一组客户详细信息返回给客户对象

var customers = from .....

然后我用

if(customers.Count() > 0)
{
return customers.First();
}
else
{
return null;
}

但是 customers.Count()抛出一个

'customers.Count()' threw an exception of type 'System.NotSupportedException'   int {System.NotSupportedException}

我还能如何检查是否未返回任何内容???

=============

这就是问题所在。这实际上是我的 LINQ 语句中的一个问题我在做

我有一个函数

bool TrimAndCompare(string s1, string s2)
{
return customer.CustomerID.Trim() == customerID.Trim()
}

var customers = from customer in _context.Customers
where
TrimAndCompare(customer.CustomerID, customerID)
select customer;

当我这样做时,一切都很好

var customers = from customer in _context.Customers
where
customer.CustomerID.Trim() == customerID.Trim()
select customer;

我猜你不能在 LINQ 语句中重用函数

最佳答案

您不能在 Linq-To-SQL 表达式中使用在 SQL 中没有等效项的方法。


为了测试结果,不要使用CountFirst,因为这会执行两次SQL 查询。
相反,请使用 FirstOrDefault:

return customers.FirstOrDefault();

FirstOrDefault返回第一个元素,如果没有找到元素,则返回 null:

关于c# - LINQ 到 SQL : If database return no values Count() throws an exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2025574/

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