最初にEFPOCOプロジェクトをコードに変換しています。T4テンプレートを変更して、すべてのエンティティが基本クラスを使用するようにEntityBase
しました。これにより、永続性に関連しないいくつかの一般的な機能が提供されます。
[NotMapped]
で属性を使用するとEntityBase
、すべてのエンティティがこの属性を継承しThe type 'X.X.Person' was not mapped
、EFで使用しようとするすべてのタイプに対してを取得します。
[NotMapped]
のすべてのプロパティで使用するEntityBase
と、EntityType 'EntityBase' has no key defined. Define the key for this EntityType
例外が発生します
参考:私はEf4.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"); }
}
}
これらの2つのクラスには、流暢なAPI構成はありません。