0

Entity Framework 4 を介してアクセスする 2 つの 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 コンストラクターの最後の 2 つのパラメーターで null 参照例外をスローします。

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 に答える