我迷失了使用MVC 5模板附带的身份验证方法.
我需要将CreateBy用户包含在一个名为client的实体中,所以经过一些研究我得出了这个:
模型:
[Table("Clients")] public partial class Client { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int Id { get; set; } public virtual int UserCreated_Id { get; set; } [ForeignKey("UserCreated_Id")] public virtual ApplicationUser UserCreated { get; set; } }
控制器方法:
client.UserCreated_Id = User.Identity.GetUserId();
但我必须改变身份模型中的几乎所有内容:
从
public class ApplicationUser : IdentityUser
至
public class ApplicationUser : IdentityUser
因此,差不多有30个变化.
但现在我有2个DbContext:
身份背景:
public class ApplicationDbContext : IdentityDbContext{ public ApplicationDbContext() : base("IPDB") {} public static ApplicationDbContext Create() { return new ApplicationDbContext(); } }
我的应用背景:
public class MyDbContext : DbContext { public MyDbContext() : base("IPDB") { // Tells Entity Framework that we will handle the creation of the database manually for all the projects in the solution Database.SetInitializer(null); } public DbSet Clients { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { // ANOTHER CHANGE I HAD TO MADE TO BE ABLE TO SCAFFOLDING modelBuilder.Entity ().HasKey (l => l.UserId); modelBuilder.Entity ().HasKey (r => r.Id); modelBuilder.Entity ().HasKey(r => new { r.RoleId, r.UserId }); } }
我现在的问题是:
我需要2个DbContext吗?
我是否正确地将用户与客户端实体相关联?
我需要创建一个包含所有用户和附加信息的列表,我是否会从2个DbContext中读取信息?
拜托,我需要一些明确的指导,因为我现在非常困惑,我真的很想建立优秀的代码,我认为情况并非如此.