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