0

我有两个通过 Entity Framework 4 访问的 Sql Server 表。它们由一个键连接,在连接的依赖端有 0 到 1 行。这是我的 linq 查询。

     var typeDtoList = from type in typeList
                       select (new DxStudioTypeDto(parent, 
                                                   isChildrenLoadOnDemand,
                                                   businessFacade,
                                                   server,
                                                   database,
                                                   type.typeGuid,
                                                   type.typeName,
                                                   type.writerName,
                                                   type.managerName,
                                                   type.Reporting_Type.MRef_Status,
                                                   type.Reporting_Type.Exists_In_Drop));

显然,如果 Reporting_Type 返回零行,则 linq 表达式会在 DxStudioTypeDto 构造函数的最后两个参数上引发空引用异常:

type.Reporting_Type.MRef_Status,
type.Reporting_Type.Exists_In_Drop));

有没有办法检测 Reporting_Type 行的缺失并替换默认字符串?DxStudioTypeDto 是一个不可变类型,所以当我实例化一个新对象时,我需要所有可用的参数。针对这种情况还有其他策略吗?

4

1 回答 1

0

你试过这个吗?

((type.Reporting_Type == null) ? "some default value" : type.Reporting_Type.MRef_Status)

我知道有时 EF 引擎会为这种事情返回“提供程序不支持此操作”,但值得一试。

于 2012-04-07T23:12:13.187 回答