gpt4 book ai didi

c# - 在System.Linq.Dynamic.Select()中,如何简单的处理空对象引用?

转载 作者:太空狗 更新时间:2023-10-30 01:17:48 31 4
gpt4 key购买 nike

我正在使用动态 LINQ (System.Linq.Dynamic)(您可以在此处找到说明,http://dynamiclinq.azurewebsites.net/GettingStarted)。

下面的语句运行良好

Products.Select("new(ProductName, CategoryID.CategoryName as CategoryName)");

但是我无意中发现当CategoryID为null时,结果是空的。但我认为它会返回一条记录,例如:

ProductName="Wine", CategoryName=""(或 null)。

然后我找到了一个方法来做到这一点

Products.Select("new(ProductName, iif(CategoryID==null,\"\",CategoryID.CategoryName) as CategoryName)");

声明很丑。

你有更好的解决方案吗?

提前谢谢你,

最佳答案

我唯一找到的是 here .目前尚不清楚为什么该解决方案被接受,但我确实看到您可以这样做:

"new(ProductName, iif(CategoryID==null,null,CategoryID.CategoryName) as CategoryName)"

而不是这个:

"new(ProductName, iif(CategoryID==null,\"\",CategoryID.CategoryName) as CategoryName)"

它并没有更短,但对我来说它使代码更具可读性,因为您只需使用 null 而不是转义引号。

关于c# - 在System.Linq.Dynamic.Select()中,如何简单的处理空对象引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30338751/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com