c# - LINQ-to-SQL 连接中的 DefaultIfEmpty 导致重复

标签 c# sql linq linq-to-sql

这是我的查询的摘录:

...
join p in dc.PODs on c.ID equals p.Consignment into pg
from pgg in pg.DefaultIfEmpty()
...

查询应该做的是获取与寄售 cargo 关联的所有“POD”,将其存储为 IEnumerable 对象(这似乎有效),这样我就可以在查询从查询​​生成的主要 IEnumerable 时运行它。

问题是,我得到了带有 DefaultIfEmpty 行的重复主行,只有当一行有多个 POD 时才会发生这种情况 - 所以它为每个 POD 返回一行,这是不正确的。如果我删除 pg.DefaultIfEmpty() 行,它似乎会好一点,但我仍然想获取没有 POD 的行。

有什么想法吗?

最佳答案

只是想确认您的第二种情况,输出不会没有没有项目的二、四、五,因为它不是外部联接? One 1 TextBox Three 3 Refridgerator 3 Bucket

我尝试的是对 dc.PODS 使用等效的 WHERE IN。 ....join appraisal in ef_appraisal on application.a_appraisalid equals appraisal.a_appraisalid<br/> where<br/> (from r in ..<br/> select r.r_applicationid).Contains(application.a_id) )

如果你有其他想法,请分享

关于c# - LINQ-to-SQL 连接中的 DefaultIfEmpty 导致重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6611957/

相关文章:

c# - 复杂的 Linq C# 查询

c# - 使用 async 和 await 关键字的好处

c# - Xamarin - Prism : How do I pass the whole ViewModel of the ContentPage to a child ContentView

c# - Xaml 中的静态字符串

c# - "await Task.Run(); return;"和 "return Task.Run()"之间有什么区别吗?

php - 如何从数据库中查找今天和其他日期之间的月份差异?

mysql - 复杂选择说明

.net - 默认 VS 对象可视化工具中的 LINQ to SQL 分组错误

mysql - 重写选择查询

c# - 是否可以通过反射调用 "Select"方法