asp.net 实体框架中的标识类



我是否可以使用实体框架模型(类(作为 asp.net 标识的类

因此,当我检索用户时,将加载数据库中的关系,如果我更新任何列或添加表,我只需要处理实体框架模型。

我确实为用户做了我的自定义类

public class MyUser : IdentityUser<long, MyLogin, MyUserRole, MyClaim>{ ... }

并将其与桌子连接

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<MyUser>().ToTable("Users");
            .....
        }

但我有更多表与"用户"表连接,而这些表与标识模型无关例如:

我有一个名为Person的表(实际上不仅仅是一个例子(

每个人可能有很多用户

,每个用户可能有很多 人

所以我们有另一个表,叫做'PersonsUsers'

所以用户有一个列表

不想调用数据库两次来检索单个用户数据,并且从代码映射表将使我的代码成为静态代码,并且取决于我更新源代码。

那么是否可以使用 EF 为表生成的类?

您还有其他解决方案吗?

是的,这是可能的。您的 MyUser 类可以具有包含 Person 列表的属性。然后在模型构建器中设置映射。像这样:

 modelBuilder.Entity<MyUser>().HasMany(m => m.Person)
                              .WithMany(p => p.MyUser)
                              .Map(m => {
                                   m.ToTable("PersonUsers");
                                   m.MapLeftKey("MyUserID");
                                   m.MapRightKey("PersonID");

我相信这将完成您正在寻找的目标。

相关内容

  • 没有找到相关文章

最新更新