OK、このエラーが発生しています。
ForeignKeyReferenceAlreadyHasValueException
そして、リンクはそれについてこれを言います、
エンティティが既に読み込まれているときに外部キーを変更しようとしたときに発生するエラーを表します。
あなたがする必要があるのは、あなたが話している Order をロードすることだと思います。それに関連付けられた OrderDetails のリストがあります。これらの参照の 1 つを削除したい場合は、OrderDetails リストから OrderDetail を削除する必要があります。
このようなことをする必要があると思います
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(); }
プレ>InsertOnSubmit なしで試してみてください。ただし、SubmitChanges は保持してください。これを設定して既にレコードを追加しているため、
order.OrderDetails.Add(orderDetail);
プレ>したがって、おそらく再度挿入する必要はありません。