使用Linq Join语句时遇到问题

时间:2014-09-16 17:04:27

标签: c# sql asp.net-mvc linq

所以我有以下Linq查询:

var comb1 = (from m1 in _modified
                     join o1 in _original on m1.custom_field_option_id equals o1.custom_field_option_id
                     from e1 in _existing
                     .Where(row => (m1.custom_field_option_id == row.custom_field_option_id || m1.custom_field_option_id == 0)
                         && row.custom_field_id == m1.custom_field_id).DefaultIfEmpty()
                     select new { m1, o1, e1 }).ToArray();

在列表_modifed中,我有两个项目。在列表_original中,我有一个项目。 _modified中的第二项是新的插入记录。 _original不包含此记录,也不包含_existing

新记录未包含在我的组合数组中。新记录的custom_field_option_id当前为0所以我添加到我的where子句:

|| m1.custom_field_option_id == 0

但这没有帮助。

如何更改此查询以在_modified中包含新记录?

1 个答案:

答案 0 :(得分:1)

除非我错过了一些东西:     在m1.custom_field_option_id等于o1.custom_field_option_id的_original中加入o1 是_original中的任何东西的硬连接。

是否该行不存在,因为该行不在_original?