Asp.net核心 - IdentityUser类与自定义类之间的一对多关系

时间:2017-04-18 16:33:09

标签: c# asp.net asp.net-identity one-to-many entity-framework-core

我有一个关于无法映射的导航属性的问题,我有一个Identity Use类定义如下:

public partial class User: IdentityUser
{
    public User() : base()
    {
        this.Blog= new HashSet<Blog>();
    }

    public string Nom { get; set; }
    public string Prenom { get; set; }
    public virtual ICollection<Blog> Blogs{ get; set; }
}

和Blog类一样:

public partial class Blog : BaseModel
{        
    public string UserId { get; set; }
    public virtual User User{ get; set; }
}

在IdentityDbContext中,我已经覆盖了OnModelCreating方法,如下所示:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    modelBuilder.Entity<Blog>()
        .HasOne(b => b.User)
        .WithMany(u => u.Blogs);
}

使用以下自定义数据播种数据库:

var usr1 = new User()
{
    Email = "colab1@emai.l",
    Nom = "CollaborateurNom",
    Prenom = "CollaborateurPrenom"
};
var userResult = await usrMgr.CreateAsync(usr1, "P@ssw0rd!");

Blog blg1 = new Blog()
{
    User = usr1
};

await ctx.SaveAsync();

在数据库中,我将Blog中的User属性视为null, 我知道我错过了什么,只是不知道它究竟是什么,请帮助!

[UPDATE]

最近注意到这可能与数据库中的用户行的异步创建有关,可能是尝试添加尚未在数据库中的用户,但仍然不知道如何确保在尝试将其分配给博客条目之前,用户已在数据库中。

0 个答案:

没有答案