одни и те же данные в БД, entity framework

102
19 декабря 2020, 18:00

Как сделать так , что бы одни и те же данные не записывались в БД

public CreateTechnicCommand(string name, string email, int age, string productname, int quantity)
{
    this.name = name;
    this.email = email;
    this.age = age;
    this.productname = productname;
    this.quantity = quantity;
}
public void Execute()
{
    using(Technic context = new Technic())
    {
        Customer customer = new Customer() 
        {
            Name = this.name,
            Email = this.email,
            Age = this.age
        };
        Order order = new Order() 
        {
            ProductName = this.productname,
            Quantity = this.quantity,
            Customer = customer
        };
        context.Customers.Add(customer);
        context.Orders.Add(order);
        context.SaveChanges();
    }
    Console.WriteLine("Record is Created");
}
Answer 1

Вы имеете ввиду, чтобы в таблице все записи имели уникальные значения емейлов?

Наложите индекс (аннотация/атрибут [Index(IsUnique = true)]). Вообще, нужно понимать, что в реляционных базах данных повсеместно этот механизм называется "ограничение" (constraint), а в конкретной СУБД майкрософт ограничение на уникальность (uniqueue constraint) реализуется через индекс (index, uniqueue index).

Просто в классе модели:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    [Index(IsUnique = true)]
    public string Email { get; set; }
    public string Age { get; set; }
}

Если ваш вопрос про уникальность не на уровне отдельных полей а на уровне емейл + имя - то вот вам полный дубликат: Уникальный индекс по нескольким стобцам в Entity Framework

Ссылки по теме:

  • MSDN Code First Data Annotations #Index
READ ALSO
ScrollBar на custom control'е

ScrollBar на custom control'е

Есть кастомный контрол

112
Не получается разделить строку методом split

Не получается разделить строку методом split

Необходимо записать строку в textbox со словами от 1 до 5 прописных букв, каждое слово надо разделить минимум 1 пробелом и все должно работать...

101
Как заменить строку в List<KeyValuePair>

Как заменить строку в List<KeyValuePair>

Есть у меня словарь, в котором хранятся слова, которые надо заменять из входной строкиНа данный момент есть такой код

126
Не работает модуль &ldquo;star_rating&rdquo; на Evolution2.0, MySql5.7, PHP7.2. General error: 2014 by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute

Не работает модуль “star_rating” на Evolution2.0, MySql5.7, PHP7.2. General error: 2014 by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute

При попытке установки получил ошибку: Решил установить вручную: добавил таблицы с setupsql, в результате сам модуль просто сжирает память, на этапе...

133