الاستعلام عن مجموعة أطراف بأطراف أو كيفية تضمين جدول متعدد إلى متعدد في استعلام معايير؟
-
28-10-2019 - |
سؤال
أنا جديد تمامًا على عالم NHibernate ولا يبدو أنني أجعل هذا يعمل باستخدام استعلام المعايير: الاستعلام عن علاقة أطراف بأطراف أو استعلام عن مجموعة (مجموعة / حقيبة) على شخصية. لقد بحثت في الإنترنت وفحصت جميع كتب NHibernate التي لدينا ، ولكن لا يمكنني العثور على إجابة محددة لـ "التحدي".
لقد قدمت مثالًا مبسطًا للمشكلة التي أحاول حلها. لدي طاولة بها كتب ، وجدول به فئات وجدول متعدد إلى متعدد مع الفئات لكل كتاب. فيما يلي بعض الجوانب الفنية:
بنية البيانات: Genacodicetagpre
فصول C #:
Genacodicetagpreتعيينات NHibernate:
Genacodicetagpreسؤالي: هل من الممكن الاستعلام (باستخدام معايير ICriteria و / أو المعايير المنفصلة) عن قاعدة البيانات بطريقة أحصل على الكتب الموجودة في إحدى الفئات التي أحددها (على سبيل المثال: في catA أو catB ، يمكن كن "و" كذلك)؟ أريد تحسين هذا في الاستعلام ، وليس في C # (حيث أحتاج إلى قراءة جميع الكتب من قاعدة البيانات قبل أن أتمكن من تصفية الكائنات بناءً على مجموعة العلامات الخاصة بهم). إذا كنت أكتب SQL يدويًا ، فسأنتج شيئًا مثل هذا: Genacodicetagpre
بما أنه ليس لدي كيان لـ tableCategoriesPerBook ، لا أرى طريقة للوصول إلى هذا الجدول باستخدام استعلام المعايير. وأنا أفضل عدم إضافة جزء مكتوب بخط اليد من تعبيرات SQL باستخدام:
Genacodicetagpreهناك عامل أخير مهم: أنا أستخدم قاعدة بيانات Brownfield ، لذا لا يمكنني تغيير الهيكل! هذا ما يجب أن أعمل به مع قاعدة البيانات.
المحلول
هذا أمر واضح ومباشر.يمكنك استخدام معايير منفصلة. Genacodicetagpre