2 つのテーブルがArticles
ありEvents
、両方のタイプのユーザーにコメント機能を提供したいと考えています。難しいのは、特定の EF オブジェクトに属するコメントを返すナビゲーション プロパティを使用したいということです。
public class Article
{
public virtual ICollection<Comment> Comments { get; set; }
/* more properties here */
}
public class Event
{
public virtual ICollection<Comment> Comments { get; set; }
/* more properties here */
}
public class Comment
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CommentId { get; set; }
public string Msg { get; set; }
public DateTime SentAt { get; set; }
public int TargetId { get; set; }
public CommentTargeType TargetType { get; set; }
}
public enum CommentTargeType
{
Article,
Event
}
ご覧のとおり、 はまたは のTargetId
ID であり、はこれら 2 つのタイプを区別するためのものです。それで、これを行う方法はありますか?それとも、代わりに ArticleComments と EventComments タイプを作成したほうがよいでしょうか?Article
Event
TargetType