如何解决如果复合键中的字段之一可为空,如何使Linq Join工作?
LicenceTypeId 是一个可为空的字段-这就是为什么使用 composite 键不能编译以下代码的原因-仅对于简单键:
var licences =
from licence in DbSet
join licenceType in DbContext.LicenceTypes
on new { x1 = licence.LicenceTypeId,x2 = currentLanguageCode,x3 = CentralToolsFieldTypes.LICENCE }
equals new { x1 = licenceType.NumberValue,x2 = licenceType.LanguageCode,x3 = licenceType.CodeName } into licenceTypes
from licenceType in licenceTypes.DefaultIfEmpty()
select new { licence,licenceType };
如果我使用类似x1 = licence.LicenceTypeId ?? : 0
的名称,它将在SQL中转换为COALESCE,我希望避免使用。我需要按3个字段直接进行LEFT JOIN。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。