日期:2014-05-18  浏览次数:20549 次

很久没来了,最近在研究LINQ, 下面2句SQL是否等价?
在LINQ中,如果要产生INNER JOIN,就必须要在表的设计器中加上 PK-FK关系

但是。。。我决定不加所以这样写:

C# code

var query = from customerRow in db.CustomerTable
            from orderRow in db.OrderTable
            where customerRow.CustomerID == orderRow.CustomerID
            select new
            {
                customerRow.CustomerID,
                orderRow.OrderID
            };




这样得到的SQL是:
SQL code

SELECT [t0].[CustomerID], [t1].[OrderID]
FROM [dbo].[tblCustomer] AS [t0], [dbo].[tblOrder] AS [t1]
WHERE [t0].[CustomerID] = [t1].[CustomerID]



这句SQL是否和下面的SQL等价?
SQL code

SELECT tblCustomer.[CustomerID], tblOrder.[OrderID]
FROM tblCustomer
INNER JOIN tblOrder ON tblCustomer.[CustomerID] = tblOrder.[OrderID]




性能是否有差异??

------解决方案--------------------
我认为是一样的.

a.id=b.id是内连接 on a.id = b.id的另外一种写法而已.
------解决方案--------------------
一个是旧式的写法,一个是sql92的标准写法,无差异