سؤال

لدي كيان LINQ يسمى الاستفسار، الذي يحتوي على عقار: سلسلة Desububmitted.

أنا أكتب تطبيقا حيث أحتاج إلى إرجاع Iqueryable للاستفسار الذي يحتوي على dingsubmitted ضمن نطاق تاريخ معين.

من الناحية المثالية أود أن أكتب شيئا مثل

IQueryable<Enquiry> query = Context.EnquirySet.AsQueryable<Enquiry>();
int dateStart = int.Parse("20090729");
int dateEnd = int.Parse("20090930");

query = (from e in query
     where(enq => int.Parse(enq.DateSubmitted) < dateEnd)
     where(enq => int.Parse(enq.DateSubmitted) > dateStart)
     select e);

من الواضح LinQ إلى EF لا يتعرف على Int.Parse، لذلك أعتقد أنني أستطيع تحقيق ما أريد به بطريقة تعبيرية تعيد المسند ؟؟

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

شكرا لك مقدما

علامة

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

المحلول

إذا كنت تعرف سلاسل تاريخك صالحة، فهي حقا في هذا النظام (وهو أمر فرز طبيعي) قد تكون قادرا على الابتعاد عن مقارنات السلسلة:

IQueryable<Enquiry> query = Context.EnquirySet.AsQueryable<Enquiry>();
string dateStart ="20090729";
string dateEnd = "20090930";

query = (from e in query
     where(enq => enq.DateSubmitted.CompareTo(dateEnd)) < 0)
     where(enq => enq.DateSubmitted.CompareTo(dateStart)) > 0)
     select e);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top