我有一个第三方服务,我从中获取大量数据,我想将这些信息存储在我的本地数据库中。假设我的数据库User、Role和UserRole中有 3 个表。
- User 表包含以下字段 - UserId(PK)、UserName。
- 角色表包含以下字段 - RoleId(PK)、RoleName。
- UserRole 表包含以下字段 - UserId(FK),RoleId(FK)。
所以用户和角色表之间存在多对多关系。
当我尝试将以下记录保存到数据库时,它会在角色表中生成重复记录。
using (CFAContext context = new CFAContext())
{
context.Users.Add(new User { UserName = "User 1", Roles = new List<Role> { new Role { RoleName = "Role 1" }, new Role { RoleName = "Role 2" }, new Role { RoleName = "Role 3" } } });
context.Users.Add(new User { UserName = "User 2", Roles = new List<Role> { new Role { RoleName = "Role 1" }, new Role { RoleName = "Role 2" } } });
context.Users.Add(new User { UserName = "User 3", Roles = new List<Role> { new Role { RoleName = "Role 1" }, new Role { RoleName = "Role 4" } } });
context.SaveChanges();
}
如何将此列表插入数据库(用户和角色),而用户和角色表中没有任何重复记录?