如何在实体框架中执行正确的联接并仅返回空值
本文关键字:空值 返回 实体 框架 执行 | 更新日期: 2023-09-27 17:57:15
我有两个表,NAttrValues和NAttrTitles。NAttrTitle 有一个 ID,在 NAttrValues 表中由"TitleID"列引用。我正在尝试使用 EntityFramework 中的 LINQ 返回 NAttrTitle 中没有任何关联 NAttrValues 的元素。
此 SQL 查询返回的正是我想要的
SELECT * FROM NAttrValues nav RIGHT JOIN NAttrTitles nat ON nav.TitleID = nat.ID WHERE nav.TitleID IS NULL
如何在EntityFramework中编写它?我已经尝试了各种不同的用法。DefaultIfEmpty() 但它们最终都返回了错误的东西,或者什么都没有。
右外连接与左外连接相同,只是左右两侧交换。因此,与 SQL 查询等效的 LINQ To 实体是:
var query =
from nat in db.NAttrTitles
join nav in db.NAttrValues on nat.ID equals nav.TitleID into nat_nav
from nav in nat_nav.DefaultIfEmpty()
where nav == null
select nat;