0

Linq to SQL 有点新。我看到了一些类似于以下示例代码的代码,并立即想知道两者之间有什么区别。起初我认为它是一样的,但后来想知道这是个别开发人员偏好获得相同的输出还是我错过了什么?

我什至不确定我可以搜索什么,看看是否有其他人遇到过同样的问题,所以感谢任何解释。

请注意,代码可能不是 100% 准确,但应该让您了解我在问什么

Public Function GetCustomerByID(Byval CustID as Integer) As IQueryable(Of Customer)
Return c From myDataContext.Customers Where c.ID = CustID Select c
End Function

Public Function GetCustomerByID(Byval CustID as Integer) As IQueryable(Of Customer)
Return myDataContext.Customers(Function(c) c.ID = CustID)
End Function
4

1 回答 1

0

它们在功能上基本相同,一个简单地使用Linq(语言集成查询),另一个使用公开的扩展方法;扩展方法主要是方便的方法(想想速记查询)来做你必须用 Linq 手工制作的事情,但显然更简单的方法也存在,而且这些方法确实经常被使用。

因此,有时,使用其中一个是偏好,而在其他时候,使用其中一个或另一个在客观上更适合于,例如,易于使用、维护等的方式。

值得注意的是,您的示例似乎不合法。正如 Marcin 指出的那样,您的第二个示例并未表达我所谈论的扩展方法的用法:请参阅myDataContext.Customers.Where(Function(c) c.ID = CustID.

于 2013-07-25T09:05:43.320 回答