Исходные типы прекрасны, когда они выражают то, что вы хотите выразить.
Например, функция десериализации может возвращать List
, но она не знает тип элемента списка. Таким образом, List
является подходящим типом возврата.
Используйте метод EntityFunctions.TruncateTime
(Nullable<DateTime>
) . Он будет транслироваться в функцию TRUNCATETIME()
TSQL в сгенерированном SQL-запросе, который делает то, что вам нужно:
Возвращает выражение с укороченными значениями времени.
blockquote>Таким образом, ваш код должен быть следующим:
//get data var myData = from log in db.OperationLogs group log by EntityFunctions.TruncateTime(log.CreateTime) into g orderby g.Key select new { CreateTime = g.Key, Count = g.Count() };
var result = from s in entitiesModel.TvysFuelTankDatas
orderby s.Datetime ascending
group s by new { y = s.Datetime.Year, m = s.Datetime.Month + "/", d = s.Datetime.Day + "/" } into g
select new WellDrillData { Date = Convert.ToDateTime(g.Key.d.ToString() + g.Key.m.ToString() + g.Key.y.ToString()), Depth = (double)g.Sum(x => x.Difference) };
List<WellDrillData> dailyFuelConsumptions = result.ToList();