私はデータベースファーストアプローチでEntity Framework 5を使用していますが、私はedmxファイルを使用しています。EntityFramework 5.0の基本クラス/エンティティ
ほとんどのエンティティには6つの共通フィールドがあります。 CreatedAt
,などのフィールド今、共通フィールドを持つエンティティのIQueryable
にしか適用できない拡張機能としていくつかの機能を実装しました。しかし、私が拡張メソッドを実装すると、それはT型であるので任意のタイプのIQueryable
によってアクセスすることができ、タイプTは常に1つの型であることだけを定義できます。
私は、共通のフィールドを持ち、タイプTをその基本タイプとして定義するエンティティに基本クラスを与えることができると考えました。しかし、私はこれをすることができないようです。
これを解決する方法や、私が上で説明したものを実装する方法についてのアイデアはありますか?
感謝を:Entity Frameworkのことでテッドは、あなたの非自動生成クラスは次のようになります。 したがって、私はedmxファイルの外にインターフェイスを定義しています。次に、そのインタフェースから実装するエンティティに指示するつもりです。必要なエンティティをすべて手動で編集するのは容易ではありません。edmxファイルを更新するときには、もう一度やり直す必要があります。 – Amila
自動生成されたコードには触れません。それは、部分クラスが使われることになっているものです。 EF内の各エンティティの部分クラス(モデルフォルダの下)を作成します。ここで、(データ注釈の)モデルのMetadataTypeを定義できます。更新された回答を参照してください。 – ataravati
はい、私は現時点でMetadataTypeを使用しています。しかし、エンティティに基本クラスを与えるなどの簡単な方法があると思った場合、ダイアグラム内にインタフェースを与えることができれば、より良いことになります。とにかく、私はすべてのエンティティの部分クラスを定義しなければならないようになります。あなたに素早い助けをありがとう – Amila