سؤال

وصف: لقد حاولت أن تفصل بعض المجال في قطاعات مختلفة DbContexts.

كل له عدة DbSets, ولكن هناك بعض DbSets المشتركة ، على سبيل المثال ، UserProfile.

والسبب في هذا الفصل هو السرعة التي نموذج تم إنشاؤه والبساطة (أقل مجموعات في كائن ، يساعد على التحسس).

ومع ذلك أنا لست متأكدا بالضبط ما ينتمي إلى النموذج الذي تم إنشاؤه.

Q1: هو كل كيان transitionally اتصال مع الكيانات التي DbSet موجود في DbContext ، تضمينها في النموذج ؟

Q2: إذا كان الأمر كذلك ، فإن ذلك يعني أن الحكمة فإنه لا يخدم أي غرض فصل المجال في سياقات مختلفة ، لأن كل شيء مرتبط ينتهي في نموذج على أي حال, بغض النظر عن أي DbSets جاء في DbContext?

أين يمكنني العثور على مزيد من المعلومات حول كيفية النموذج ولدت ؟ لقد قرأت كتاب عن EntityFramework و CodeFirst و لا يمكن أن تجد أن معلومات محددة...

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

المحلول

الرد على الخاص السؤال الأول:نعم كل العلاقات على غرار بما في ذلك الكيانات على كلا الجانبين ، وذلك في كل كيان متصل عن طريق الملاحة الملكية شملت الكيان كما سيتم تضمينها في النموذج بغض النظر إذا كان هناك DbSet من أجل ذلك أم لا.

إطار الكيان لا قوة لك لخلق DbSets لجميع الكيانات.هذا يمكن أن يكون مفيد إذا كنت ترغب في "تقييد" الطفل كيانات فقط يمكن الوصول إليها من خلال والديهم.

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

يمكنك قراءة (بعض أجزاء) الكيان إطار التعليمات البرمجية المصدر ، انه مفتوح المصدر ومتوفر على CodePlex لمعرفة المزيد عن كيف تم بناء نموذج.

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