【发布时间】:2016-02-26 17:42:44
【问题描述】:
我创建了一个 MVC 解决方案,用户可以在其中注册活动。
这是使用UserRecord 和EventRecord 之间的Many-to-Many 关系创建的。当用户注册事件时,会创建该用户与事件之间的关系。当他/她注册事件时,我需要能够向用户添加一些凭据。例如为单个事件添加经验。
凭据应该只绑定到事件和用户之间的关系。因此,如果 User1 注册了 Event1 和 Event2,他就可以将一组凭据添加到 Event1,并将另一组凭据添加到 Event2。
您会如何推荐一个适当的数据库结构,其中添加了如上所述的凭据?
我的用户记录:
public class UserRecord
{
[Display(AutoGenerateField = false)]
public Guid Id { get; set; }
public string Gender { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection<EventRecord> Events { get; set; }
}
我的活动记录:
public class EventRecord
{
public Guid OwnerId { get; set; }
public string Title { get; set; }
public virtual ICollection<FighterRecord> Fighters { get; set; }
}
在 Entity Framework 中使用迁移后,在我的数据库中创建了上述两条记录之间的联结表,名为 UserRecordEventRecord。
【问题讨论】:
-
在关系数据库中实现多对多的唯一正确方法是联结表
-
通过在每个
record中添加ICollection 后迁移,将联结表添加到我的数据库中。用户和事件之间的多对多关系已经启动并运行。我只是不确定如何创建我的问题中提到的凭据。 -
会写一个答案
-
您在询问数据库结构,但您的问题包含 EF 模型。你到底想要什么?
-
我添加了 EF 模型以显示我当前的设置,其中用户和事件之间的关系是通过 EF 迁移创建的。我在问如何添加问题中提到的凭据。
标签: c# asp.net-mvc entity-framework