【发布时间】:2016-02-23 15:48:17
【问题描述】:
我正在尝试学习 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
【问题讨论】:
标签: ef-code-first duplicates entity-framework-6 code-first