我是否可以使用实体框架模型(类(作为 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");
我相信这将完成您正在寻找的目标。