سؤال

متى لم تعد "وحدة العمل" "وحدة"؟ما هو السيناريو الأفضل بالنسبة للموارد؟يقوم الأول بإنشاء اتصال واحد بينما يقوم الثاني بإنشاء 4.

using (DataContext dc=new DataContext) 
{
  var orders= from o in dc.orders 
              select ( new Product {  property a= from a in ..join... select x, 
                                      property b= from b in ..join... select y,
                                      property c= from c in ..join... select z.}
                      )
}

أو

using (DataContext dc=new DataContext) 
{
  var orders= from o in dc.orders 
              select ( new Product {  property a = GetPropertyA(), 
                                      property b = GetPropertyB(),
                                      property c = GetPropertyC()}
                      )
}
هل كانت مفيدة؟

المحلول

عند استخدام LINQ، إذا قمت بإضافة كيان إلى آخر ويستخدمون سياق بيانات مختلفًا، فسوف تحصل على خطأ.أود أن أقترح الاحتفاظ بنفس سياق البيانات لكل وحدة عمل تستخدمها.يمكنك بسهولة تحديد وحدة العمل التي تقوم بمعالجتها باستخدام نمط المستودع لكتابة فئات الوصول إلى البيانات الخاصة بك.إذا لم تكن واضحًا بشأن نمط المستودع، تحقق من هذا الإدخال

نصائح أخرى

وبصفة عامة على رحلات ذهابا وإيابا أقل لقاعدة البيانات الخاصة بك كلما كان ذلك أفضل. ومع ذلك، في تطبيقات النطاق عالية ونحن غالبا ما تجعل قواعد بياناتنا أكثر وأكثر "البكم" لذلك نحن في نهاية المطاف لا تفعل أي ينضم لذلك نحن لا ربط وحدة المعالجة المركزية والذاكرة على خادم قاعدة البيانات SQL. انها حقا يتوقف على الموارد التي تجد أكثر ندرة. إذا كان ملقم SQL لديه الكثير من الموارد لا الصلة هناك، وسحب وإلا فإنه يعود بشكل منفصل سيكون أفضل. هل نظرت إلى نتائج هذا في التعريف SQL؟ هل أنت متأكد من انها 4 وصلات، أو مجرد 4 مكالمات منفصلة؟

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