我只是想知道我们如何确定是否在join
中使用linq to sql
。
假设我们有两张这样的桌子
Table 1 Customer
id
name
Table 2 addresstype
id
address1
customerid
和
var address = from cu in Customer
from ad in addresstype
where cu.id == ad.customerid
select ad;
或
var address = from cu in Customer
join ad in addresstype on cu.id equals ad.customerid
select de;
两者都是一样的。表演有什么不同吗?
同样是第二种方法,如果没有任何匹配,它是否会出现错误?
最佳答案
基本上,这两个linq查询相当于以下sql查询:
select ad.*
from Customer cu, AddressType ad
where cu.ID == ad.CustomerID -- I assume this was meant by the OP
和
select ad.*
from Customer cu
inner join AddressType ad on cu.id = ad.CustomerID;
这两个查询之间的差别主要是语义上的,因为数据库在这两种情况下都会执行相同的操作,并为这两个查询返回相同的结果集。
我更喜欢sql和linq中的
join
语法,因为它定义了两个表/实体之间的显式关系,这只在无连接版本中隐含。