2012-03-19 5 views
1

エンティティフレームワーククラスに、SQLクエリにマップする代わりに、テーブルの列にマップするのではなく、フィールドを追加することは可能ですか?任意のSQLクエリをEntity Frameworkフィールドにマップできますか?

実際の例(これは実際に私が達成しようとしていることの説明のほうが分かりやすいものではありません)私のクラスは結果を保持するTableCountフィールドオブジェクトがdbからロードされた時点でSELECT COUNT(*) FROM MyTableの値を返します。

編集:これは私の元の投稿でこれを述べたはずですが、私はPOCOクラスを使用しています。

答えて

1

データベースにマッピングされたエンティティと直接それを行うことはできませんが、あなたの元のエンティティとあなたの追加の計算列から列を含む新しいエンティティタイプとそれを達成するためにどのように2つの方法があります。

  • は、データベースビューを作成します。そのビューをマップします。これは、EDMXデザイナーによって完全に自動管理されています。
  • 新しいエンティティタイプ全体を設定し、手動でDefiningQueryにマップするクエリを作成します。欠点は、データベースからの更新を選択するたびに、標準のVS EDMXデザイナが編集済みのSSDLパートを上書きするため、マニュアルEDMX編集が必要であり、追加(商用)ツールを使用せずにEDMXの手動保守も必要であることです。
+0

私の編集をご覧ください。私はPOCOクラスを使用しているので、EDMXデザイナーは実際にそれを入力しません。 – Mykroft

+0

EOCXでもPOCOクラスは引き続き可能です。コードを最初に使用している場合は、カスタムクエリをクラスにマップすることはできませんが、既存のデータベースでコードマッピングを使用している場合は、最初のアプローチを使用できます。 –

関連する問題