OK, så du får denne fejl,
ForeignKeyReferenceAlreadyHasValueException
Og linket siger dette om det,
Repræsenterer fejl, der opstår, når der gøres et forsøg på at ændre en fremmednøgle, når entiteten allerede er indlæst.
Jeg tror, hvad du skal gøre, er at indlæse den ordre, du taler om, og den vil have en liste over ordredetaljer tilknyttet. Hvis du vil fjerne en af disse referencer, skal du fjerne OrderDetail fra OrderDetails-listen.
Jeg tror, du skal gøre sådan noget,
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();
}
Prøv det uden InsertOnSubmit, men behold SubmitChanges. Jeg foreslår det, fordi du allerede tilføjer posten ved at indstille dette,
order.OrderDetails.Add(orderDetail);
Så du behøver sandsynligvis ikke at indsætte den igen.