65.9K
CodeProject 正在变化。 阅读更多。
Home

(LINQ 和可空值) 或 (SQL ISNULL 与 LINQ)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (2投票s)

2010年12月24日

CPOL
viewsIcon

56756

(LINQ 和可空值) 或 (SQL ISNULL 与 LINQ)

在这篇简短的文章中,我将展示如何在 LINQ 查询中处理可空值,以及如何实现类似于 SQL ISNULL 函数的功能。 在继续之前,请阅读以下文章: 问题 在处理 LINQ 查询时,我需要对于给定属性/列的 null 值显示 "N/A"。 解决方案 1
像下面的示例一样使用三元运算符,对于 null 值,MobileNo = "N/A"
var user = from u in Users
join uc in UserClients on u.Id equals uc.UserId
into myuserwithclient
from m in myuserwithclient.DefaultIfEmpty()
select new {
u.Id,
FirstName = u.FirstName,
LastName = u.LastName,
UserId = m.UserId,
MobileNo = (m.MobileNo == null) ? "N/A" : m.MobileNo
};
解决方案 2 使用特殊的合并运算符 (??),像下面的示例一样,对于 null 值,MobileNo = "N/A"
var user = from u in Users
join uc in UserClients on u.Id equals uc.UserId
into myuserwithclient
from m in myuserwithclient.DefaultIfEmpty()
select new {
u.Id,
FirstName = u.FirstName,
LastName = u.LastName,
UserId = m.UserId,
MobileNo = m.MobileNo ?? "N/A" 
};
总结 上述解决方案展示了我们如何轻松处理 null 值,以及实现 SQL ISNULL 函数的功能。
© . All rights reserved.