首页 > 解决方案 > ASP.NET Core MVC:如何使用实体框架将实体绑定到特定用户

问题描述

我知道我的问题有点宽泛,但我在网上没有找到任何好的答案。

我正在构建一个 ASP.NET Core MVC Web 应用程序。我正在寻找有关如何将特定用户绑定到实体(模型中的类)的提示。问题实际上是关于如何将某个用户绑定到数据库中的某个实体。

任何帮助将不胜感激。

标签: entity-frameworkasp.net-coreasp.net-core-mvc

解决方案


ApplicationUser(或IdentityUser)与任何其他实体类一样。

例如,创建 1-n 关系如下所示:

public class ApplicationUser : IdentityUser
{
    public virtual IList<MyEntity> MyEntities { get; set; } // navigation property
}

public class MyEntity
{
    public int Id { get; set; }

    public string CreatedByUserId { get; set; }        // FK
    public ApplicationUser CreatedByUser { get; set; } // Navigation property
}

你也可以用流利的方式做到这一点:

public class ApplicationUser : IdentityUser { }
public class MyEntity
{
    public int Id { get; set; }
    public string CreatedByUserId { get; set; }
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    protected override void OnModelCreating(ModelBuilder builder)
    {
        builder.Entity<MyEntity>(b => {
            b.HasOne<ApplicationUser>()
             .WithMany()
             .HasForeignKey(myEntity => myEntity.CreatedByUser);
        });
    }
}

推荐阅读