Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Link do SQL ForeignKeyReferenceAlreadyHasValueException

OK, więc pojawia się ten błąd,

http://msdn.microsoft.com/en -us/library/system.data.linq.foreignkeyreferencealreadyhasvalueexception.aspx

ForeignKeyReferenceAlreadyHasValueException

Link mówi o tym,

Reprezentuje błędy, które pojawiają się podczas próby zmiany klucza obcego, gdy jednostka jest już załadowana.

Myślę, że to, co musisz zrobić, to załadować zamówienie, o którym mówisz, i będzie miało z nim powiązaną listę szczegółów zamówienia. Jeśli chcesz usunąć jedno z tych odniesień, musisz usunąć szczegóły zamówienia z listy szczegółów zamówienia.

Myślę, że musisz zrobić coś takiego,

using (DataClasses1DataContext context = new DataClasses1DataContext())
{
    Customer customer = context.Customers.Where(x => x.CustomerID == 1).Single();
    Order order = new Order();
    // set some order fields here
    customer.Orders.Add(order);

    OrderDetail orderDetail = new OrderDetail();
    order.OrderDetails.Add(orderDetail);

    orderDetail.Product = context.Products.Where(x => x.ProductID == 2).Single();
    orderDetail.ProductID = orderDetail.Product.ProductID;

    context.SubmitChanges();
}

Wypróbuj bez InsertOnSubmit, ale nadal zachowaj SubmitChanges. Proponuję, ponieważ już dodajesz rekord, ustawiając to,

order.OrderDetails.Add(orderDetail);

Więc prawdopodobnie nie musisz go ponownie wstawiać.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Warunkowe ORDER BY w zależności od wartości kolumn

  2. Wysyłanie wiadomości e-mail przez serwer SQL NIE powiodło się

  3. Zapytanie programu SQL Server dla relacji „wiele do wielu” — jak wykonać zapytanie?

  4. Oblicz brakujące zakresy dat i nakładające się zakresy dat między dwiema datami

  5. Korzystanie z wygenerowanego przez bazę danych GUID i datetime z EF4