متى يمكنني استخدام علاقات أحادية الاتجاه في nhibernate؟

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

  •  03-10-2019
  •  | 
  •  

سؤال

أحاول تنفيذ رسم بياني كبير لكيانات .NET لاستخدام nhibernate ، لكنني أواجه مشكلة تفيد بأن معظم العلاقات محددة فقط بشكل غير موجود - في معظم الحالات ، تحتوي فئة الطفل على إشارة إلى الوالد ، ولكن لا يحتوي الوالد على مجموعة من الحكام لأطفاله. سيكون من العمل قليلاً لإضافة جميع المجموعات لتحويل العلاقات إلى مجموعات ثنائية الاتجاه ، لذلك أنا أتساءل ما هي عواقب Nhibernate من عدم القيام بذلك؟

إحدى النتائج التي لاحظتها هي أن الحذف المتتالي يبدو أنه يفشل (لا يتم حذف الطفل في ديسيبل ، مما يسبب انتهاكًا في النزاهة المرجعية). هل هذه هي النتيجة الوحيدة أم أن هناك مشاكل أخرى أحتاج إلى أن أكون على دراية بها؟

هل هناك أي إرشادات لمتى يجب أن تكون العلاقات Uni أو ثنائية الاتجاه؟

شكرًا

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

المحلول

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

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

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

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

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