I have declared a field in my model as nullable datetime like this
public DateTime? CallNextDate {get;set;}
in my aspx code behind I am using this linq like this:
q = q.AsQueryable()
.Where(c => c.CallNextDate.Date < DateTime.Now.Date )
.ToList();
but c.CallNextDate.Date is not available. Please suggest how to fix it
Well, if you already know it's non-null, you can use Value to get the underlying non-nullable value:
q = q.AsQueryable()
.Where(c => c.CallNextDate.Value.Date < DateTime.Now.Date)
.ToList();
Or if you want to filter on that too:
q = q.AsQueryable()
.Where(c => c.CallNextDate.Value != null &&
c.CallNextDate.Value.Date < DateTime.Now.Date)
.ToList();
I'd strongly encourage you to fetch today's date once though, and reuse it for the whole query:
var today = DateTime.Today;
q = q.AsQueryable()
.Where(c => c.CallNextDate.Value != null &&
c.CallNextDate.Value.Date < today)
.ToList();
That will give you more consistency. You should really consider whether you definitely want the system local date, by the way.
(Do you definitely need to use AsQueryable, by the way? That's relatively rare.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With