在LINQ to SQL中,内连接的语法是什么?
我正在写一条LINQ to SQL语句,我想知道C#中带有`ON'子句的普通内连接的标准语法。
你如何在LINQ to SQL中表示以下内容。
select DealerContact.*
from Dealer
inner join DealerContact on Dealer.DealerID = DealerContact.DealerID
432
19
它是这样的。
如果你的表能有合理的名称和字段就更好了,这样的例子就更多了。)
更新
我想对于你的查询,这可能更合适。
因为你要找的是联系人,而不是经销商。
因为我更喜欢表达式链语法,所以下面是你如何用它来做。
为了扩展表达式链语法[回答][1],由Clever Human。
如果你想在两个表的字段上做一些事情(比如过滤或选择)--而不是只在这两个表中的一个表上做,你可以在 Join 方法的最终参数的 lambda 表达式中创建一个新的对象,将这两个表整合在一起,比如说。
有趣的部分是该示例第4行中的lambda表达式。
...我们构建了一个新的匿名类型的对象,它的属性是DealerContact和Dealer记录,以及它们的所有字段。
然后我们可以使用这些记录中的字段来筛选和选择结果,就像本例的其余部分所展示的那样,我们使用
dc_d
作为我们构建的匿名对象的名称,该对象同时拥有DealerContact和Dealer记录作为其属性。[1]: https://stackoverflow.com/a/3851487/12484
你创建一个外键,LINQ-to-SQL为你创建导航属性。 每个 "Dealer "将有一个 "DealerContacts "的集合,你可以选择、过滤和操作。
或
如果你'没有使用导航属性,你就错过了LINQ-to-SQL的一个主要优势--映射对象图的部分。
使用Linq Join操作符。
基本上LINQ的join操作符对SQL没有任何好处。 即 下面的查询
在SQL中会产生INNER JOIN
join对IEnumerable<> 因为它的效率更高。
对每一个商都要重新执行该条款。 但对于IQueryable<> 就不是这样了。 另外join也不太灵活。
其实,很多时候最好不要加入,在linq中就是如此。 当有导航属性的时候,一个非常简洁的方法就是写你的linq语句。
译为where子句。
使用[LINQ joins][1]执行内联接。
[1]: http://msdn.microsoft.com/en-us/library/bb397941.aspx
试试这个......{{5294322}}
试试这个
在学生表和课程表有主键和外键关系的情况下。
from d1 in DealerContrac join d2 in DealerContrac on d1.dealearid equals d2.dealerid select new {dealercontract.*}。
写出你想要的表名,并初始化选择得到字段的结果。
在linq中对两个表进行内部连接
一个最好的例子
表名:
TBL_Emp
和TBL_Dep
。 "TBL_Emp "和 "TBL_Dep