سؤال

لدي مشكلة مع LINQ إلى SQL insertonsubmit ، والتي يبدو أنها تعمل فقط مع العنصر الأول في الجدول.

على سبيل المثال مع ما يلي:

var noteDetail1 = new NoteDetail() { Title = "Test Note Title 1", NoteText = "Test note" };
var waiverDetail1 = new WaiverDetail() { Title = "Test Waiver Title 1", NoteText = "Test waiver details text" };
var riskDetail1 = new RiskDetail() { Title = "Test Risk Title 1", NoteText = "Test risk details text" };
context.Notes.InsertOnSubmit(noteDetail1);
context.Notes.InsertOnSubmit(riskDetail1);
context.Notes.InsertOnSubmit(waiverDetail1);
context.SubmitChanges();

أحصل فقط على الكيان الأول ("Test Note Title 1") الذي تم إدخاله في قاعدة البيانات. إذا وضعت مجموعة فرعية بعد كل إدراج ، يتم إدخال جميع الصفوف بنجاح.

جميع الأنواع المذكورة أعلاه ورثت من فئة الملاحظة ، لذلك يتم إدراجها في نفس الجدول.

ومع ذلك ، فإنني أواجه نفس المشكلة مع الفصول غير المشتقة.

لقد أمضيت وقتًا طويلاً في النظر إلى هذا ولكن لا يمكنني العثور على ما ارتكبته خطأ. إن الفكرة الكاملة لإدراج insertonsubmit/submitchanges هي حتى تتمكن من إجراء تغييرات متعددة ، لذلك يجب أن يكون هناك شيء بسيط في عداد المفقودين.

هل كانت مفيدة؟

المحلول

كانت المشكلة هي أنني قد تجاوزت تساويًا في فصول الكيانات الخاصة بي بحيث تم اعتبار الكيانات ذات المعرف نفسه كما هي. من الواضح أن LINQ TO SQL تستخدم هذا في مرحلة ما والحصول على النتيجة أن جميع الكيانات الجديدة متساوية (لأنها جميعها لديها معرف 0).

شكرا جوناثان لكونك "بطة مطاطية".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top