باستخدام تعبيرات LinQ لإيقاف تشغيل جانب العميل من DAL (وهو جانب الخادم)

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

سؤال

لم أجد الإجابة بين الوظائف العديدة على LinQ، لذلك أنا هنا. لدينا تطبيق خادم العميل، حيث ليس لدى جانب العميل على الإطلاق معرفة DAL الفعلية على جانب الخادم، والذي يتم تطبيقه بالمناسبة باستخدام Nibernate. المعنى، لا توجد مراجع إلى Nhibernate من التجميعات الجانبية العميلة، بالإضافة إلى عدم وجود تجريد قاعدة بيانات. يتكلم الجانب العميل بدقة في شروط الكيانات، التي تعتمد على كائنات أعمال CSLA.

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

لقد قمت بتنزيل وإعادة تجميعها LinQ إلى LinQ To Lonhibernate، ولكن لسوء الحظ، لا يمكنني العثور على مثال تعبيرات Linq Decousles (الجانب العميل المعروف أيضا باسم) من مثيل Nibernatecontext (جانب Server AKA). يبدو أن جميع الأمثلة مثل

from c in db.Customers where ...

أي كل من السياق (DB.Customers) والتعبير (حيث ...) في بيان واحد.

هل من الممكن فصلهم؟ شكرا.

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

المحلول 2

هذا يتحول إلى أن تكون سهلة جدا - from c in db.Customers where linq-exp select c أي ما يعادل db.Customers.Where(linq-exp).

كنت بحاجة فعلا إلى هذا كجزء من مشكلة أوسع - تحديد تعبير LinQ على جانب العميل واستخدمه لإحضار البيانات على جانب الخادم. منشوري هنا يصفها بمزيد من التفاصيل.

نصائح أخرى

نلقي نظرة على هذا المنصب. يمكنك استخدام هذا المفهوم لتمرير معلمات الاستعلام ثم بناء استفسارك ديناميكيا.

استعلام LinQ المدمج في Foreach Loop يأخذ دائما قيمة المعلمة من التكرار

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