2012-02-09 12 views
0

クエリに列が存在する場合、エンティティクラスのプロパティのみを設定する方法を見つけようとしていますか?存在する場合のみエンティティフレームワークのマップ列

DbSet.SqlQueryを使用してクエリを実行し、エイリアスである列を返すと、すべて正常です。しかし、All()、Find()、ToArray()などの組み込みの機能を使用するときは、その列がデータセット内にあることが必要です。

エンティティクラスのプロパティをオプションとしてマークする方法(サポートするすべてのクエリを手動で記述する必要はありません)はありますか。

現在、null可能なDateTimeとしてマークされていますが、フレームワークは、組み込みの機能を使用するときにフレームワークが存在しないと依然として不満を持ちます。

どのような提案も素晴らしいでしょう。

乾杯

答えて

1

いいえ、SQLクエリを作成する必要があるためです。列がNULLであるかどうかは関係ありません。問合せを作成するときに、その列が存在しない場合、列が存在しないというエラーをスローする可能性があります。

唯一の方法は、マッピングしたり、条件付きでマッピングしたり、条件付きでマップするときにスキーマをクエリしたりすることです(これはお勧めしませんが)。

+0

Urgh、thanks Darren。私はDbSetからエンティティクラスを移入する仮想メソッドがあることを思い出します。正しくリコールすれば、これをオーバーライドし、その値が行に存在する場合は「notmapped」プロパティを設定できますか?再度、感謝します。 – Gavin

関連する問題