Subsonic 3، SimpliePository، SQL Server: كيفية العثور على صفوف مع حقل فارغة؟

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

سؤال

كيف يمكن أن تستخدم Subsonic Find<T> طريقة للبحث عن صفوف مع حقل يحتوي على القيمة "NULL". من أجل المناقشة، دعونا نفترض أن لدي AC # فئة تسمى "الزيارة" التي تحتوي على حقل تاريخي لا يحتوي على "Synchronizedon"، كما دعنا نفترض أن الهجرة البنائية قد أنشأت جدول "الزيارات" المقابلة وحقل "Synchronizeron" وبعد

إذا كنت أكتب استعلام SQL بنفسي، فسوف أكتب شيئا مثل:

SELECT * FROM Visits WHERE SynchronizedOn IS NULL

عندما استخدم التعليمات البرمجية التالية:

var visits = myRepository.Find<Visit>(x => x.SynchronizedOn == null);

تنقل الأمر إلى استعلام SQL التالي:

SELECT * FROM Visits WHERE SynchronizedOn == null

التي لا ترجع أبدا أي صفوف.

حاولت التعليمة البرمجية التالية ولكنها ترمي خطأ:

visits = repository.Find<Visit>(x => x.SynchronizedOn.HasValue);

كنت قادرا على استخدام بناء الجملة التالي:

var query = from v in repository.All<Visit>()
            where v.SynchronizedOn == null
            orderby v.CreatedOn
            select v;
visits = query.ToList<Visit>();

لكنها ليست لطيفة قصيرة مثل استخدام Find<T> طريقة.

أي شخص يعرف كيف يمكنني تحديد حالة "synchronizeson فارغة" في Find<T> طريقة؟

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

المحلول

يمكنك استخدام:

var visits = myRepository.All<Visit>().Where(x => x.SynchronizedOn == null).ToList();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top