0

最初に EF 5.0 とコードを使用しており、手動の SQL クエリを使用してエンティティの配列を設定する必要があります。ただし、データベースからエンティティ全体をロードする必要はありませんが、いくつかのフィールドのみをロードする必要があります。追跡も必要ありません。

両方

Context.Set<TEntity>().SqlQuery(queryText, parameters)

Context.Database.SqlQuery<TEntity>(queryText, parameters)

例外をスローしています:

The data reader is incompatible with the specified 'XXX_Type'. A member of the type, 'XXX_Some_Not_Loaded_Property', does not have a corresponding column in the data reader with the same name.

不足しているフィールドを無視するように EF を強制する方法はありますか?

4

1 に答える 1

0

たとえば、デフォルト値を使用して「選択」を行うことができます

Select Col1, 0 as Col2, getdate() as DateCreated from Table1 

上記の Table1 には、Col2 という名前の整数列を含めることができますが、選択していません。代わりに、Col2として 0 を選択しますが、これは問題を引き起こしません。

同様に、データベースに DateCreated という列があった可能性がありますが、現在の日付を DateCreated として選択しています。

これはEFをだますはずです。これらのデフォルト値で DB 行を上書きしないように、追跡を無効にする方法を引き続き検索する必要があります。

于 2013-05-20T22:47:57.957 に答える