【发布时间】:2015-04-20 13:57:09
【问题描述】:
我正在使用实体框架创建数据库。现在,我的问题是:
我有 ASP.NET 用户实体 (ApplicationUser)。我还有另一个用户实体 (LynxUser)。它们之间的关系是:每个ApplicationUser可以开一个或多个LynxUser账户。每个ApplicationUser 一次必须登录其中一个,并且一次只能登录其中一个。注册ApplicationUser 帐户时,也注册了LynxUser。我不需要担心LynxUser 帐户的安全性,唯一的要求是ApplicationUser 只能使用他们自己的帐户。
我很难以 EF 喜欢的方式对此进行建模。现在,我的代码看起来像(为简洁而编辑):
public class ApplicationUser : IdentityUser {
[Display(Name = "Active User", AutoGenerateField = false), InverseProperty("SelecterUser")]
public LynxUser ActiveUser { get; set; }
[InverseProperty("ApplicationUser")]
public ICollection<LynxUser> LynxUsers { get; set; }
}
和
public class LynxUser {
[Key, Display(Name = "User name", AutoGenerateField = true), StringLength(50, MinimumLength = 1),
Editable(false, AllowInitialValue = true)]
public string Name { get; set; }
[Required, Display(Name = "Site User", AutoGenerateField = false), Editable(false, AllowInitialValue = true),
InverseProperty("LynxUsers")]
public virtual ApplicationUser ApplicationUser { get; set; }
/// <summary>
/// This is required to establish a one-to-one transferrable relationship as the active user.
/// </summary>
[Display(Name = "Selecter User", AutoGenerateField = false), InverseProperty("ActiveUser")]
public virtual ApplicationUser SelecterUser { get; set; }
}
问题似乎是这两个实体之间的递归关系。我怎样才能更好地建模呢?我绝对需要记录每个ApplicationUser 登录的最后一个LynxUser。
编辑:问题已解决,请参阅我的回答。
【问题讨论】:
标签: c# entity-framework data-modeling