我有一个关于无法映射的导航属性的问题,我有一个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]
最近注意到这可能与数据库中的用户行的异步创建有关,可能是尝试添加尚未在数据库中的用户,但仍然不知道如何确保在尝试将其分配给博客条目之前,用户已在数据库中。