Linq2Sql,加入可能的空字段
我正在尝试执行一个可以连接可能为空值的连接。
from data in Data
join d1 in Data on new { a = data.pId, b = language } equals new { a = d1.pId, b = d1.language } into j1
from dta1 in j1.DefaultIfEmpty()
join d2 in Data on new { a = data.pId, b = fallback} equals new { a = d2.pId, b = d2.language } into j2
from dta2 in j1.DefaultIfEmpty()
where ((int?)dta1.id ?? dta2.id) == data.Id
select data;
这里的问题是 pId 可以为 null,如果是,则连接在比较时不会匹配,
data.pId = null
而不是
data.pId is null
在正常的 where 子句中,我可以执行 object.Equals(data.pId, d1.pId) ,它会做空检查,但是我如何在连接中执行此操作?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一种方法是将空值转换为其他一些未使用但可等同的值。
One approach is to convert the null value into some other unused, yet equatable value.