各 POCO クラスが基本エンティティ クラスを継承するか、IEntity インターフェイスを実装する多くの EF POCO の例を見てきました。
これが使用される理由はある程度理解できますが、何かが欠けていない限り、すべての状況で機能するとは思えません。
エンティティ基本クラスは次のようになります。
public class Entity
{
#region Primitive Properties
[Key]
public int Id { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateModified { get; set; }
[Timestamp]
public byte[] rowversion { get; set; }
#endregion
}
...具体的な POCO クラスは次のようになります。
public class BlogCategory : Entity
{
#region Properties
[Required(ErrorMessage = "Category Name is required.")]
public string CategoryName { get; set; }
public virtual ICollection<Blog> BlogList { get; set; }
#endregion
}
これは、すべてのクラスに 1 つの Primary Key プロパティが含まれている場合は問題ありませんが、多対多の関係がある場合はどうなりますか? 通常、多対多の関係では、エンティティには、このエンティティの主キーを表す二重のプロパティがあります。
そのような:
public class ClaimQuestionAnswer : Entity <-- this will not work, will it?
{
[Key]
public int QuestionId { get; set; }
[Key]
public int AnswerId { get; set; }
public string Answer { get; set; }
public byte[] rowversion { get; set; }
}
この特定の POCO は基本クラスを継承しませんか?
説明をいただければ幸いです。
ありがとう。