Oke, jadi Anda mendapatkan kesalahan ini,
ForeignKeyReferenceAlreadyHasValueException
Dan tautannya mengatakan ini tentang itu,
Mewakili kesalahan yang terjadi saat upaya dilakukan untuk mengubah kunci asing saat entitas sudah dimuat.
Saya pikir apa yang perlu Anda lakukan adalah memuat Pesanan yang sedang Anda bicarakan, dan itu akan memiliki daftar Detail Pesanan yang terkait dengannya. Jika Anda ingin menghapus salah satu referensi tersebut, Anda harus menghapus OrderDetail dari daftar OrderDetails.
Saya pikir Anda perlu melakukan sesuatu seperti ini,
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();
}
Cobalah tanpa InsertOnSubmit, tetapi tetap pertahankan SubmitChanges. Saya menyarankan itu karena Anda sudah menambahkan catatan dengan mengatur ini,
order.OrderDetails.Add(orderDetail);
Jadi Anda mungkin tidak perlu memasukkannya lagi.