سؤال

أنا تحت الانطباع بأن

  • EF مع POCO:يسمح لك بتعيين POCO الخاص بك للكيانات الموجودة في النموذج (.edmx).
  • رمز EF فقط: لا edmx/مصمم النماذج (أي.البيانات الوصفية CSDL/SSDL/MSL (بشكل جماعي EDMX).لا تزال POCO ولكن التعيينات والعلاقات والملاحة وما إلى ذلك كلها يدويا مشفرة (وبالتالي الكود فقط، الوصف).

إذا كان هذا الوصف للمفهومين صحيحًا (أكثر أو أقل)، فلماذا يفعل شخص ما ما يفعله بالرمز فقط بدلاً من EF مع POCO؟

كلاهما يقومان بـ POCO، لكن الثاني لديه العبء الإضافي المتمثل في الاضطرار أيضًا إلى إجراء رسم الخرائط يدويًا؟

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

المحلول

  1. يعد الكود أمرًا رائعًا فقط إذا كنت تريد كتابة التعيين يدويًا دون الحاجة إلى الدخول عبر XML.كما أن مصمم edmx يصبح غير عملي بعد 50 نموذجًا أو نحو ذلك، فهو مجرد عبء لاستخدامه بهذه الطريقة.

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

الآن لا أعرف التفاصيل ولكن المصمم في EF1 لم يدعم جميع خيارات التعيين المتاحة.يحتوي مصمم EF4 على بعض التحسينات (تتبادر إلى ذهني العلاقات ذات الاتجاه الواحد) لكنني لست متأكدًا مما إذا كان يتمتع بتكافؤ الميزات مع التعيينات اليدوية.

  1. نعم.

نصائح أخرى

الشيء الوحيد الذي أود إضافته إلى إجابة jfar هو أنه مع Code-Only لا تفعل ذلك يملك لإنشاء التعيينات.

يمكن استنتاج التعيينات عن طريق الاصطلاح في معظم الأوقات.

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

لقد استخدمت التعليمات البرمجية فقط لـ 400 جدول كجزء من التحقيق حول ما إذا كنت سأستخدم EF4 أو NHibernate وهناك تأخير أولي قدره 80 ثانية لإنشاء العرض - تمامًا كما هو الحال عند استخدام المصمم، ولكن مع عرض المصمم مسبقًا - الجيل ممكن مما أدى إلى تقليل التأخير إلى 10 ثوانٍ.إذا لم تكن سعيدًا بتقسيم النموذج الخاص بك وكان لديك أكثر من 75 جدولًا تقريبًا، فلا تستخدم التعليمات البرمجية فقط.

لا أعتقد أن Code-Only يتيح لك حاليًا إنشاء طرق العرض مسبقًا، لذلك قد تكون هناك تكلفة للأداء.قد يتغير هذا قبل الإصدار.

شيء آخر لم يتم ذكره هو أنك تحصل على فحص كامل لوقت الترجمة لبناء الجملة الخاص بك عند استخدام Code Only.إذا كنت تستخدم المصمم المرئي مع EDMX، فستحصل على بعض التحقق من وقت الترجمة، ولكنه محدود.بالنسبة للطرز الأكبر حجمًا، يصبح EDMX صعبًا للغاية، وتعد كتابة CSDL وSSDL وMSL يدويًا الطريقة الوحيدة اللائقة لإدارة النماذج الكبيرة للغاية باستخدام تعيينات XML.لن تحصل على أي فحص لوقت الترجمة إذا كنت تدير تعييناتك يدويًا.

باستخدام Code Only، يمكنك التمتع بميزة التحقق من وقت الترجمة الكامل للنماذج من أي حجم، حتى لو كان لديك مئات أو آلاف الكيانات التي تحتاج إلى العمل معها.كما أنه يؤدي إلى "فوضى" أقل، حيث أن منتجك النهائي عبارة عن تجميعات مجمعة، بدلاً من مزيج من التجميعات وأنواع مختلفة من ملفات XML.

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