ठीक है, तो आपको यह त्रुटि मिल रही है,
विदेशीकी संदर्भ पहले से ही हैसवैल्यू अपवाद
और लिंक इसके बारे में यही कहता है,
उन त्रुटियों का प्रतिनिधित्व करता है जो तब होती हैं जब इकाई पहले ही लोड हो जाने पर किसी विदेशी कुंजी को बदलने का प्रयास किया जाता है।
मुझे लगता है कि आपको जो करना है वह उस ऑर्डर को लोड करना है जिसके बारे में आप बात कर रहे हैं, और इसमें इसके साथ जुड़े ऑर्डर विवरण की एक सूची होगी। यदि आप उन संदर्भों में से किसी एक को हटाना चाहते हैं तो आपको ऑर्डर विवरण सूची से ऑर्डर विवरण निकालना होगा।
मुझे लगता है कि आपको ऐसा कुछ करने की ज़रूरत है,
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 के बिना आज़माएं, लेकिन फिर भी सबमिट चेंज रखें। मेरा सुझाव है कि क्योंकि आप पहले से ही इसे सेट करके रिकॉर्ड जोड़ रहे हैं,
order.OrderDetails.Add(orderDetail);
तो शायद आपको इसे दोबारा डालने की जरूरत नहीं है।