Entity Framework 6 个 Code First 重复项
Entity Framework 6 Code First duplicates
我正在尝试学习 EFCF,但我偶然发现了一个记录重复问题,而且我无法在 Internet 上的任何地方找到解决方案(或者我只是不知道要搜索什么)。 DbContext class 如下:
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();
}
}
而人类class如下:
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
您对 ID 属性 应用了唯一索引 - 如果您想要唯一 names/surnames,您还必须对它们应用唯一约束。
(根据你的imgur图片,ID不同,其他字段相同)
我正在尝试学习 EFCF,但我偶然发现了一个记录重复问题,而且我无法在 Internet 上的任何地方找到解决方案(或者我只是不知道要搜索什么)。 DbContext class 如下:
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();
}
}
而人类class如下:
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
您对 ID 属性 应用了唯一索引 - 如果您想要唯一 names/surnames,您还必须对它们应用唯一约束。
(根据你的imgur图片,ID不同,其他字段相同)