2012-04-07 13 views
0

我有兩個通過實體框架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是一個不可變的類型,因此當我創建一個新對象時,我需要所有可用的參數。對於這種情況的其他策略?

回答

0

你試過這個嗎?

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

我知道有時EF引擎會返回一個「提供程序不支持此操作」的類似的東西,但它值得一試。

+0

有時最簡單的東西是最難看的。感謝您的正確方向。工作得很好。 – JimBoone 2012-04-08 12:04:08

相關問題