我有一个linq to sql语句,它将一组Customer详细信息返回给客户对象
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语句中重用函数
答案 0 :(得分:6)
在Linq-To-SQL表达式中,不能使用SQL中没有等效的方法。
为了测试结果,请不要使用 Count 和 First ,因为这会执行两次SQL查询。
而是使用 FirstOrDefault :
return customers.FirstOrDefault();
FirstOrDefault返回第一个元素,如果没有找到元素,则返回 null :