Subsonic 3، SimpliePository، SQL Server: كيفية العثور على صفوف مع حقل فارغة؟
-
12-09-2019 - |
سؤال
كيف يمكن أن تستخدم 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();
لا تنتمي إلى StackOverflow