唯一の受け入れられた回答は質問に対する回答ではないため、基本的にこの質問を再質問しています。
生成されたエンティティ クラスの基本クラスとして、以下のような EntityObject をサブクラス化するクラスを使用するように EF に指示することは可能ですか?
public abstract class CustomEntityObject : EntityObject
{
<additional functionality>
}
私が尋ねている理由は、インターフェースを追加して、個別の部分クラス ファイル内のすべてのエンティティ タイプにそれらを実装するのをやめたいからです。EntityObject をサブクラス化することで、追加機能を 1 回だけ実装できました。
アップデート:
EF は暗黙的に .tt ファイルを使用してエンティティ クラスを生成します。暗黙的には、プロジェクトに .tt ファイルが表示されないことを意味します。解決策は、テンプレートを明示的に追加することです (.edmx デザイナーを右クリックし、[コード生成項目の追加...] をクリックしてから、[ADO.NET EntityObject Generator] を追加します)。次に、.tt 内の単一の値を変更します。
string BaseTypeName(EntityType entity, CodeGenerationTools code)
{
return entity.BaseType == null ? "EntityObject" : MultiSchemaEscape((StructuralType)entity.BaseType, code);
}
変更:
string BaseTypeName(EntityType entity, CodeGenerationTools code)
{
return entity.BaseType == null ? "CustomEntityObject" : MultiSchemaEscape((StructuralType)entity.BaseType, code);
}