Cir*_*nja 4 linq null concatenation
我想要一种使用LINQ将多个列连接在一起的优雅方法,但是当任何列为NULL时使用+运算符或concat()会导致连接后的值为NULL.
有没有类似于concat()以不同的方式处理NULL,或者我是否以不正确的方式考虑这个?
任何帮助表示赞赏!
这是我正在使用的代码:
List<CustomObject> objects = (
from obj in ObjectTable
where obj.Id == Id
select new CustomObject()
{
EnteredBy = obj.EnteredBy,
EntryDate = obj.EntryDate,
WorknoteText =
obj.VchWorkNote1 +
obj.VchWorkNote2 +
obj.VchWorkNote3 +
obj.VchWorkNote4 +
obj.VchWorkNote5 +
obj.VchWorkNote6 +
obj.VchWorkNote7 +
obj.VchWorkNote8 +
obj.VchWorkNote9 +
obj.VchWorkNote10 +
obj.VchWorkNote11 +
obj.VchWorkNote12 +
obj.VchWorkNote13 +
obj.VchWorkNote14 +
obj.VchWorkNote15 +
obj.VchWorkNote16 +
obj.VchWorkNote17 +
obj.VchWorkNote18 +
obj.VchWorkNote19 +
obj.VchWorkNote20
}).ToList();
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 13
一种选择是使用null合并运算符:
List<CustomObject> objects = (from o in ObjectTable
where o.Id == Id
select new CustomObject(){
EnteredBy = o.EnteredBy,
EntryDate = o.EntryDate,
WorknoteText =
(o.VchWorkNote1 ?? "") +
(o.VchWorkNote2 ?? "") +
(o.VchWorkNote3 ?? "") +
(o.VchWorkNote4 ?? "") +
...
(o.VchWorkNote20 ?? "")
}).ToList();
Run Code Online (Sandbox Code Playgroud)
希望生成的SQL将使用适当的转换.
| 归档时间: |
|
| 查看次数: |
3356 次 |
| 最近记录: |