C# 实体框架中的asp.net标识类
我是否能够使用实体框架模型(类)作为asp.net标识的类 因此,当我检索用户时,数据库中的关系将被加载,如果我更新任何列或添加表,我只需要处理实体框架模型 我确实为用户自定义了类C# 实体框架中的asp.net标识类,c#,asp.net,entity-framework,asp.net-identity,asp.net-identity-2,C#,Asp.net,Entity Framework,Asp.net Identity,Asp.net Identity 2,我是否能够使用实体框架模型(类)作为asp.net标识的类 因此,当我检索用户时,数据库中的关系将被加载,如果我更新任何列或添加表,我只需要处理实体框架模型 我确实为用户自定义了类 public class MyUser : IdentityUser<long, MyLogin, MyUserRole, MyClaim>{ ... } 公共类MyUser:IdentityUser{…} 把它和桌子连接起来 protected override void OnModelCreat
public class MyUser : IdentityUser<long, MyLogin, MyUserRole, MyClaim>{ ... }
公共类MyUser:IdentityUser{…}
把它和桌子连接起来
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<MyUser>().ToTable("Users");
.....
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
基于模型创建(modelBuilder);
modelBuilder.Entity().ToTable(“用户”);
.....
}
但我有更多的表与“Users”表相连接,而不是与Identity模型相连接
例如:
我有一张名为Person的表(不仅仅是一个示例)
每个人可能有很多用户,每个用户可能有很多用户
人
所以我们有另一个表叫做“PersonsUsers”
所以用户有一个列表
我不想两次调用数据库来检索单个用户的数据,从代码映射表将使我的代码保持静态,这取决于我是否更新源代码
那么,是否可以使用EF为表生成的类呢
您还有其他解决方案吗?是的,这是可能的。MyUser类可以有一个包含人员列表的属性。然后在modelBuilder中设置映射。大概是这样的:
modelBuilder.Entity<MyUser>().HasMany(m => m.Person)
.WithMany(p => p.MyUser)
.Map(m => {
m.ToTable("PersonUsers");
m.MapLeftKey("MyUserID");
m.MapRightKey("PersonID");
modelBuilder.Entity().HasMany(m=>m.Person)
.WithMany(p=>p.MyUser)
.Map(m=>{
m、 ToTable(“个人”);
m、 MapLeftKey(“MyUserID”);
m、 MapRightKey(“PersonID”);
我相信这将完成您想要的功能。谢谢matty的回答,但这将使我的代码保持静态,我必须在添加或修改关系时进行更新,是否有任何方法可以使用EF类?另外,我在用户中添加了一些字段,并希望包括如何做到这一点?我不确定我是否完全理解你正在寻找答案。也许你可以在你的帖子中给出一个更详细的例子?