LinqJoin语句出现问题

本文关键字:问题 语句 LinqJoin | 更新日期: 2023-09-27 18:22:01

所以我有以下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中包含新记录?

LinqJoin语句出现问题

除非我错过了一些东西:在m1_original中加入o1。custom_field_option_等于o1.custom_field_option_是与原始内容的硬连接。

可能是因为该行不是原始的,所以该行不存在吗?