我有两个数据模型:
public class Role
{
int Id;
string Name;
}
以及
public class User
{
int Id;
string Name;
List<Role> Roles;
}
有我的DbContext:
public class DatabaseContext : DbContext
{
public DbSet<User> Users => Set<User>();
public DbSet<Role> Roles => Set<Role>();
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=database.sqlite");
}
}
但是我有List<Role>
的问题,当我从查看器中检查数据库数据时,我看到Users
表在用户中没有任何Roles
,但是Roles
表有属性UserID
,它有点工作,但是只有1个id存储在那里,我该如何修复它?
我需要有多个角色和具有其中一些角色的用户
1条答案
按热度按时间t3irkdon1#
它有点工作,但只有1个id存储在那里,我怎么能修复它?
这取决于你的实际需求。根据应用程序的要求,通常用户只能被分配一个角色,或者用户和角色之间存在多对多的关系。
如果您希望用户只有一个角色,则应反转关系,即角色具有用户列表:
对于多对多的情况,有两个主要的选项-在两端指定
List
,让EF内部创建连接表或显式配置连接表(EF Core docs on many-to-many)。对于第一种情况,您的实体可以如下所示: