سؤال

وأنا أبحث في تنفيذ بعض LINQ إلى SQL ولكن أنا تكافح لنرى كيف والإعداد إضافة في قواعد العمل مراقبة الدخول مثل العميل لا يمكن إلا أن عرض طلباتهم. في خدمات البيانات ADO.NET، intercptors الاستعلام تفعل بالضبط ما أنا بعد، ويمكن أن نرى كيفية التحقق على تحديث / إدراج / حذف، ولكن هناك ما يعادل هذا:

[QueryInterceptor("Orders")] 
public IQueryable<Orders> OnQueryOrders(IQueryable<Orders> orderQuery) 
{ 

      return from o in orderQuery 
         where o.Customers.ContactName == HttpContext.Current.User.Identity.Name 
         select o; 
} 

وأو فيل ولست بحاجة للتحكم عن طريق يمكنهم الدخول على طول خط:     GetOrdersByCustomer (سلسلة العميل)

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

المحلول

وأعتقد، في هذه الحالة، فإن الحل الأفضل هو لبناء طبقة الأعمال الحقيقية التي تقع بين طبقة التطبيقات وLINQ إلى الفصول الدراسية SQL.

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

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