Я пытаюсь изучить EFCF, но я наткнулся на проблему дублирования записей, и я не могу найти решение в любом месте в Интернете (или я просто не знаю, что искать). Класс DbContext выглядит следующим образом:Entity Framework 6 Код Первые дубликаты
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)], похоже, не помогает здесь, потому что в более крупной базе данных может случиться, что у двух человек одно имя или одна и та же фамилия.
Вот как это выглядит в MS SQL студии: imgur
Но если я буду стараться, чтобы добавить «Джон Смит» и «Кэти Смит», добавив, что последний не будет возможное. – Amai
Ах, тогда вам нужен индекс с несколькими столбцами. IndexAttribute имеет конструктор, который принимает IndexName - хороший ответ здесь - http://stackoverflow.com/a/23090070/2656307 –
Да, это все, спасибо за помощь. ^^ – Amai