Нарушение кода первичного ключа первого Entity Framework - PullRequest
0 голосов
/ 26 апреля 2018

Это Invoices класс:

public class Invoices
{
    public Guid Id { get; set; }
    public Customers Customer { get; set; }
    public List<Payments> Payments { get; set; }
    public Double Total { get; set; }
    public DateTime Date { get; set; }
    public Boolean Payed { get; set; }
}

А это Payments класс:

public class Payments
{
    public Guid Id { get; set; }
    public Products Product { get; set; }
    public Int32 Quantity { get; set; } 
}

Когда я пытаюсь добавить Счета

Invoices addInvoice = new Invoices(customer, payments, total, date, payed);
Context.Invoices.Add(addInvoice);
Context.SaveChanges();

Я получаю это сообщение:

Violation products

Но я не пытаюсь добавить товар.Это потому, что у меня есть список Payments с продуктом для каждого платежа?Как я могу решить эту проблему?

Спасибо всем, кто ответит на этот вопрос.

Обновление : я обнаружил, почему EF пытается добавить продукты снова.

Я изменил эту строку

pagamenti.Add(new Payments(new Products(idProduct, nameOfProduct, price)));

на эту:

Products product = Context.Products.Where((p) => p.Id == idProdotto).First();
pagamenti.Add(new Payments(product, quantita));

И теперь она работает правильно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...