pt
和emod
都是内存中的查询,返回tElementRowValuesDBModel
类型。在显示此声明之后,两者都不会被执行。
如果我分别调试并查看返回的结果,则两者都成功运行并返回值。
我可以使用Except
或not in
子查询,确定!,但我只是想了解这是一个错误还是有一个解决方法。
奇怪的是,如果我删除对tempe
对象的任何引用,一切都运行正常。
我错过了什么吗?
var RealNewNodes = from p in pt
join e1 in emod on new{X1 = p.tElementRowsDBModelID, X2 = p.tAttributesDBModelID, X3 = p.AttributeValue} equals new {X1 = e1.tElementRowsDBModelID, X2 = e1.tAttributesDBModelID, X3 = e1.AttributeValue } into tempt
from tempe in tempt.DefaultIfEmpty()
where tempe == null //if i remove this line, works OK
select new tElementRowValuesDBModel{
tElementRowsDBModelID = p.tElementRowsDBModelID,
tAttributesDBModelID = p.tAttributesDBModelID,
AttributeValue = p.AttributeValue,
ID = (tempe!=null ? 1 : 0 )//if i remove this line, works OK
};
答案 0 :(得分:0)
也许如果你没有进行加入,因为你的%s/[0-9a-f][0-9a-f]/0x$&,/g
/ join
意味着找不到匹配的where
,它就可以了:
pt