我試圖找出如何我可以重新使用一個簡單的多個場景中的東西是「commentable」在我的應用「註釋」實體類型。實體框架4.1 - 分離的實體到多個表(代碼優先)
目前,我有幾個實體,一個用戶可以發表評論到。示例包括博客,個人資料和照片 - 這些都可以「註釋」。
我希望能夠使用相同的「評論」類每一種方案的,但我不想與一個巨大的滿桌子的一切意見結束。我想,這將是更有效存儲至少BlogComments,PhotoComments和ProfileComments表。此刻,我的評論類看起來是這樣的:
public class Comment
{
[Key]
public int Id { get; set; }
public int ContextId { get; set; }
[StringLength(256)]
public string Content { get; set; }
public DateTime DatePosted { get; set; }
public virtual Member Author { get; set; }
}
據推測,我需要的「CONTEXTID」字段來指代特定的事情被評論。此ID可能是博客,個人資料或照片的ID。我希望能夠參考意見很像這些類正常ICollection的,我有一些像這樣的代碼,照片爲例:
public class Photo
{
[Key]
public int Id { get; set; }
[StringLength(48)]
public string FileName { get; set; }
public virtual Member Owner { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
期間我一直指出的各種物品我搜索,但沒有一個真正與我的特定情況有關。我怎麼能這些評論集合映射到不同的表,並避免評論「超表」?
任何幫助,指針或建議將非常感激:)
輝煌!這是一個非常好的簡單解決方案。我非常複雜的問題 - 謝謝:) – Alex 2012-02-12 13:27:07