In my current query I’m having an error like this:
The datetime literal value '2012-05-24' is not valid.
For regular linq query it seems like this:
_listHistory = (from item in dbase.histories
where item.UserID == details.UserID && item.FriendID.HasValue == true && item.LogDate < today
select item).OrderByDescending(x => x.LogDate).Take(take).Skip(skip).ToList();
I will be dealing with number of table “Columns” so I have to use linq predicate:
string predicate = string.Format("it.UserID=={0} && CAST(it.{1} as Edm.Int64) != null && it.LogDate <= DATETIME'{2}'",
details.UserID, columnname, string.Format("{0:yyyy-MM-dd}", today));
_listHistory = dbase.histories.Where(predicate)
.OrderByDescending(x => x.LogDate).Take(take).Skip(skip).ToList();
But this query result the error above. Can anyone help me to construct my linq query?
It is my first time to deal with Linq predicates and literals.
You could likely use the dynamic LINQ support instead, but assuming this is Entity Query Language, it appears that you can construct the datetime with a call to CreateDateTime:
http://msdn.microsoft.com/en-us/library/bb738563.aspx