私は自分のEF POCOプロジェクトをコードに変換しています。 T4テンプレートを変更したので、すべてのエンティティで基本クラスEntityBase
を使用して、永続性に関連しない共通の機能をいくつか提供します。EFコードで共通の基底クラスを継承する
EntityBase
に[NotMapped]
属性を使用すると、すべてのエンティティがこの属性を継承し、EFで使用しようとするすべてのタイプのThe type 'X.X.Person' was not mapped
が得られます。私はEntityBase
のすべてのプロパティに[NotMapped]
を使用する場合は
が、私は
FYI EntityType 'EntityBase' has no key defined. Define the key for this EntityType
例外を取得:私が使用Efの4.3.1
編集:コードの一部:
[DataContract(IsReference = true)]
public abstract class EntityBase : INotifyPropertyChanged, INotifyPropertyChanging
{
[NotMapped]
public virtual int? Key
{
get { return GetKeyExtractor(ConversionHelper.GetEntityType(this))(this); }
}
//other properties and methods!
}
と
[DataContract(IsReference = true), Table("Person", Schema = "PER")]
public abstract partial class Person : BaseClasses.EntityBase, ISelfInitializer
{
#region Primitive Properties
private int? _personID;
[DataMember,Key]
public virtual int? PersonID
{
get{ return _personID; }
set{ SetPropertyValue<int?>(ref _personID, value, "PersonID"); }
}
}
これらのtw oクラスには流暢なapi設定がありません。
すでにabtractです。 – Alireza
@Alirezaまあ、あなたはCodeFirstとT4テンプレートを話します。これは本当にCodeFirstですか?リレーションシップマッピングの場所と方法を表示できますか?私たちはCodeFirstで基本抽象クラスを使用しているので、正常に動作しています... –
私はEFデータベースを最初に使用し、POCOを使用しました。その時私はすべてのクラスが 'EntityBase'を継承するようにT4を変更しました。コードに最初に切り替えたので、T4はもう存在しません。 – Alireza