2011-07-13 43 views

回答

12
Entities.Customer.First(c => c.CustomerId == 20); 
+0

我可能错过了一些东西。这里是我得到的:Project1.OrderEntities oe = new Project1.OrderEntities(); oe.Customers.First(c => c.CustomerId == 20);那里没有财产“第一”。 – user194076

+2

'First'是一个Linq扩展方法。把'using System.Linq;'放在你的.cs文件的顶部。 –

9

您将要使用.First()或.FirstOrDefault()。区别在于,如果您的客户不存在,是否需要空值或异常。

如果数据库中没有匹配结果,.First()方法将引发异常。如果没有匹配的结果在数据库中

Customer customer21 = oe.Customers.First(c => c.CustomerId == 20); // throws an exception if customer 21 does not exist 

Customer customer21 = oe.Customers.FirstOrDefault(c => c.CustomerId == 20); // null if customer 21 does not exist 
0

你也可以使用一个LINQ方法的.FirstOrDefault()方法将返回null,如下:

Customer customerRecord = 
    (from customer in Entities.Customers 
    where customer.id == 20 
    select customer).FirstOrDefault(); 

使用FirstOrDefault()将返回null如果带有该ID的元素不存在,而不是First(),这会引发异常。另外,在使用LINQ语句之前,请确保包含using System.Linq;

希望这会有所帮助。