【发布时间】:2011-06-02 16:35:19
【问题描述】:
我有几个对象,我希望我的用户能够支持/反对投票。 (类似于 SO 问题)如果它只是一个对象类型,我可以有一个简单的一对多关系,但我至少有三个需要投票跟踪的对象类型。
我正在使用 MVC3 和 EF CodeFirst。
这是初稿
public class Deed { public int DeedId { get; set; } [Required] public string Name { get; set; } public string Description { get; set; } public virtual ICollection<Vote> Votes { get; set; } }
public class Vote
{
public int VoteId { get; set; }
public string UserId { get; set; }
public int Value { get; set; } // +1, -1
public ItemType VoteType { get; set; }
public int ItemId { get; set; }
}
public enum ItemType
{
DEED,
ACTIVITY,
IDEA
}
我会遇到什么样的麻烦?另一种方法是保持投票表与其他实体完全无关,并使用存储库来填充 Deed、Activity 和 Idea 对象的 VoteTotal 字段。
【问题讨论】:
-
您是否尝试过使用继承并使投票与顶级类型有关系?例如Deed、Activity 和 Idea 都可以继承自 Item,它们与投票是一对多的关系。 (您应该能够使用 EF 继承)
标签: c# asp.net-mvc-3 ef-code-first