我试图学习EFCF,但我偶然发现了记录重复问题,我无法在互联网上的任何地方找到解决方案(或者我只是不知道要搜索什么)。 DbContext类如下:
public class Database : DbContext
{
public Database() : base("name=DBconnString")
{
}
public DbSet<Human> People { get; set; }
public void human_add_new(int _rank, String _name, String _surname)
{
Human dummy = new Human(_rank, String _name, String _surname);
People.Add(dummy);
SaveChanges();
}
}
人类如下:
public class Human
{
[Index(IsUnique = true)]
public Int16 ID { get; set; }
public int rank { get; set; }
public String name { get; set; }
public String surname { get; set; }
}
现在,问题是每当我运行我的代码并执行它时:
human_add_new(3, "Noname", "Noname");
创建一条新记录,从而在我的数据库中创建重复项(因此,如果我运行代码5次,将创建5条相同的记录)。我该如何预防呢? [Index(IsUnique = true)]似乎没有帮助,因为在一个更大的数据库中,可能会发生2个人姓氏相同或姓氏相同的情况。
以下是MS SQL Studio中的样子:imgur
答案 0 :(得分:0)
您已将唯一索引应用于ID属性 - 如果您需要唯一的姓名/姓氏,您还必须对其应用唯一约束。
(根据你的imgur图片,ID是不同的,其他字段是相同的)