我有一个MVC 5应用程序,使用默认的身份验证。 用户资料是我们模型的一部分,这意味着有几个类与UserInfo有外键关联。 有两个DbContext,一个用于模型,另一个用于UserInfo。
public class ApplicationDbContext : IdentityDbContext<UserInfo>
{
public ApplicationDbContext()
: base("Profile")
{
}
}
public class UserInfo : IdentityUser
{
public UserInfo ()
{
LibraryItems = new List<LibraryItem>();
if (UserGroup == UserGroupEnum.ANALYST)
{
Companies = new List<Company>();
}
DateCreate = DateTime.Now;
DateUpdate = DateTime.Now;
DateDelete = DateTime.Now;
}
[DisplayColumnInIndex]
[DisplayName("Is Active ?")]
public bool IsActive { get; set; }
[Timestamp]
public byte[] RowVersion { get; set; }
//[ValidateFile(ErrorMessage = "Please select a PNG image smaller than 1MB")]
//[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
[Editable(false, AllowInitialValue = true)]
public DateTime DateCreate { get; set; }
//[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime DateUpdate { get; set; }
//[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime DateDelete { get; set; }
[DisplayColumnInIndex]
public String Name { get; set; }
[DisplayColumnInIndex]
public String FirstName { get; set; }
[DisplayColumnInIndex]
public String Pseudo { get; set; }
[DisplayColumnInIndex]
public string PhoneNumber { get; set; }
[DisplayColumnInIndex]
public String Company { get; set; }
[DisplayName("Name_Id")]
[ForeignKey("FullName")]
public int? NameId { get; set; }
[DisplayColumnInIndex]
public UserGroupEnum UserGroup { get; set; }
[DisplayColumnInIndex]
public UserStatusEnum UserStatus { get; set; }
public virtual Name FullName { get; set; }
}
public class Comment
{
// more properties
[DisplayName("UserInfoId")]
[ForeignKey("UserInfo")]
public virtual String UserInfoId { get; set; }
}
public class Like
{
// more properties
[DisplayName("UserInfoId")]
[ForeignKey("UserInfo")]
public virtual String UserInfoId { get; set; }
}
我的userInfo表还有外键关联到第二个DBContext的其他表。
设计我们的认证系统的最佳方式是什么?如何维护两个上下文之间的关系。
提前致谢。
DbSet
,而没有它们自己的DbSet
。这意味着该上下文的迁移 将 创建这些相关实体的表,并且它们不能同时由另一个上下文管理。 - Chris Pratt