سؤال

وأنا بحاجة للحصول على 1000 الصفوف من قاعدة بيانات، وفي الوقت نفسه علامة لهم باسم 'في عملية'. بهذه الطريقة، موضوع آخر لا يمكن اتخاذ نفس 1000 الصفوف ومعالجة لهم كذلك.

ومع LINQ أفعل شيئا من هذا القبيل:

ورسائل و= (من م في database.messages         حيث (m.status == MESSAGESTATUSINIT)         تحديد م) .Take (1000) .ToList ()؛

ومثالي وأود أن في نفس الوقت تعيين الحالة إلى MESSAGESTATUSPROCESSING. بالطبع يجب أن يكون هذا الذرية.

وأي أفكار؟ أم أنه يعود إلى SQL؟

وذلك بفضل!

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

المحلول

وأنت لا تستطيع أن تفعل ذلك في مصمم الرسم Linq2SQL. استخدام الإجراء المخزن، وتكوينه على مصمم لإخراج رسالة. وبهذه الطريقة يمكنك التعامل مع الكيانات تحميل وارتكاب التغييرات بشكل طبيعي.

والتحقق من ذلك عن كيفية القيام بذلك (رسم الخرائط على وجه التحديد نوع الإرجاع من طرق SPROC إلى فئات نموذج البيانات): <وأ href = "http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx" يختلط = " noreferrer نوفولو "> http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx

نصائح أخرى

وينق نفسها لن توفر هذه القدرة. نضع في اعتبارنا ينق == استعلامات. تحديث البيانات يحدث في أماكن أخرى.

هل يمكن أن يكون أفضل حالا في هذه الحالة كتابة إجراء مخزن لإرجاع النتائج. وsproc يمكن تحديث الجدول وإرجاع النتائج بالذرة، وتطبيق الخاص بك، ثم سوف يكون مكالمة واحدة.

ويمكنك تحيط رمز القفل مع {}.

قفل كلمة

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