سؤال

عند إنشاء معايير في NHibernate يمكنني استخدامها

Restriction.In() أو
تقييد.InG()

ما الفرق بينهم؟

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

المحلول

InG هو المعادل العام لـ In (للمجموعات)

توقيعات الطرق هي كما يلي (يتم عرض ICollection In overload فقط):

In(string propertyName, ICollection values)

ضد.

InG<T>(string propertyName, ICollection<T> values)

بالنظر إلى الكود المصدري لـ NHibernate (جذعها)، يبدو أنهما ينسخان المجموعة إلى مصفوفة كائنات ويستخدمانها للمضي قدمًا، لذلك لا أعتقد أن هناك فرقًا في الأداء بينهما.

أنا شخصياً أستخدم In واحد فقط في معظم الأوقات - فهو أسهل في القراءة.

نصائح أخرى

يقوم Restriction.In بالتأكيد بإنشاء استعلام فرعي بأي معايير تمررها إلى الأسلوب .In()، ولكن لست متأكدًا مما يفعله InG().لم يسبق له مثيل.

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