-------------------
使用EF 6
-------------------
我有3张桌子:
1)用户
public class Users
{
[Key,Required, MaxLength(50)]
public string UserName { get; set; }
[Required, MaxLength(128)]
public string Email { get; set; }
[Required, MaxLength(128)]
public string Password { get; set; }
}
2)角色
public class Roles
{
[Key,Required, MaxLength(50)]
public string RoleName { get; set; }
[MaxLength(50)]
public string ApplicationName { get; set; }
}
3) UsersInRoles //我的问题。
public class UsersInRoles
{
[Key]
public int id { get; set; }
[ForeignKey("Users"), Required]
public string FKUserName { get; set; }
public virtual Users Users { get; set; }
[ForeignKey("Roles"), Required]
public string FKRoleName { get; set; }
public virtual Roles Roles { get; set; }
}
现在我的问题是如何在UsersInRoles表中插入记录???
我使用以下代码,但不在表中插入任何数据!
甚至不显示任何错误!
List<UsersInRoles> BUsersInRoles = new List<UsersInRoles>
{
new UsersInRoles { FKUserName="User1", FKRoleName="Role1"},
new UsersInRoles { FKUserName="User2", FKRoleName="Role2"}
};
foreach (UsersInRoles BIR in BUsersInRoles)
{
db.UsersInRoles.Add(BIR);
}
db.SaveChanges();
感谢。
更新: 我发现了一个错误:
INSERT语句与FOREIGN KEY约束冲突 “FK_dbo.UsersInRoles_dbo.Roles_FKRoleName”。冲突发生在 数据库“AriyaRad”,表“dbo.Roles”,列“RoleName”。该 声明已被终止。
答案 0 :(得分:0)
我解决了我的问题! 原因是我为外键定义了单个字符串值,但尝试插入字符串值列表!
db.UsersInRoles.Add(new UsersInRoles {FKUserName="User1",
FKRoleName="Role1", ApplicationName="PSCMS"});
db.SaveChanges();