كيفية تعيين كائن رئيسي أجنبي باستخدام إطار الكيان واللواقعي

StackOverflow https://stackoverflow.com/questions/1682375

سؤال

ما كنت أتطلع إليه هو تعيين كائن رئيسي أجنبي في كيان EF عبر FLUNENTML. لدي كيان foo مع مرجع إلى شريط الكائن عبر foo.bar. ما أحاول القيام به هو تعيين قيمة الشريط في نموذج عرضي. تحتوي النماذج الخاصة بي على مجموعة من جميع الحانات عبر الطراز. في رأيي أنا ببساطة باستخدام <%= this.Select(m => m.Foo.Bar).Options(Model.Bars) %> لكن الحالة النموذجية تدعي أنها غير صالحة. يتم ملء المنسدلة بشكل صحيح مع معرفات الشريط وكلها تبدو صالحة. هل هناك بعض السحر الخاص الذي أحتاجه لإعداد خصائص مرجع كيان EF في أشكالي؟

لقد انتقلت للتو من LinQ2SQL حيث كنت ببساطة باستخدام SELECT SELECT (M => M.FOO.Barid) كما يمكن أن يكون لديك مرجع رئيسي معين بالإضافة إلى الكائن. ومع ذلك، فإن إطار الكيان لا يسمح بذلك.

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

المحلول

أنت تواجه أحد المضاعفات العديدة التي تنشأ من استخدام كائنات العمل كطرازات عرض. قد أقترح أنه على المدى الطويل، إنها مشكلة أقل بكثير إذا قمت بتحويل كائنات الأعمال إلى نماذج عرض الوزن خفيفة الوزن للعرض والتجليد. دع طبقة الخدمة الخاصة بك (أو وحدة تحكم، إذا كان يجب عليك) معرفة كيفية تعيين foo.bar على أساس editfoo.barid.

نصائح أخرى

أنا لا أعرف fluenthtml. ولكن فيما يتعلق بنظام EF:

  1. EF 4.0 يتيح لك الحصول على "الجمعيات الرئيسية الأجنبية"، والتي تتيح لك الرجوع إلى m.foo.barid مثل L2s.
  2. في EF 1، أو باستخدام "جمعيات مستقلة" في EF 4، تحتاج إلى القيام M.FOO.BAR.ID (ملاحظة DOT إضافية)، شريطة تحميل هذا الشريط.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top