使用EF4C #,面对连接中的问题. sql语法
Select a.Code, b.Name from DepartmentMaster a
Join DepartmentDetail b on isnull( a.ID,0) =isnull( b.ID,0)
**注意:**a.ID,B.ID都可以为空
我想把上面的语法转换成Linq的语法,但Bellow的语法对我不起作用
Var r=from a in DepartmentMaster
Join b in DepartmentDetail on a.ID equals b.ID
Select a.Code,b.Name
需要帮助在linq ef中编写sql语法isnull()可比进程。
如有任何疑问,请询问。
5条答案
按热度按时间4sup72z81#
如果id为null,可以使用null-coalescing运算符提供默认值:
这将生成查询
这与
ISNULL
不完全相同,但结果应该相同。lyr7nygr2#
这可能对你有帮助
aelbi1ox3#
您可以使用
DefaultIfEmpty
,它将空集合替换为一个默认值的集合。因为int的默认值是0dgenwo3n4#
你应该能够做这样的事情:
bfhwhh0e5#
我做了一些测试,发现在.NET 6.0与Microsoft.EntityFrameworkCore 6上,当我们比较可空字符串时,两者之间有很大的区别:
这将给予以下ON子句:
和
这将给予所需的ON子句: