Дата в Async LINQ to Entities [дубликат]

Исходные типы прекрасны, когда они выражают то, что вы хотите выразить.

Например, функция десериализации может возвращать List, но она не знает тип элемента списка. Таким образом, List является подходящим типом возврата.

18
задан Arthas 7 January 2014 в 05:19
поделиться

2 ответа

Используйте метод EntityFunctions.TruncateTime (Nullable<DateTime>) . Он будет транслироваться в функцию TRUNCATETIME() TSQL в сгенерированном SQL-запросе, который делает то, что вам нужно:

Возвращает выражение с укороченными значениями времени.

Таким образом, ваш код должен быть следующим:

//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() };
40
ответ дан MarcinJuraszek 22 August 2018 в 04:07
поделиться
  • 1
    thx, это помогает мне – Arthas 7 January 2014 в 10:05
  • 2
    Если вы используете EF6, EntityFunctions устарел, замените его на DbFunctions (и спасибо, ответ мне помог :)) – Jonathan Levison 17 April 2014 в 08:56
  • 3
    TruncateTime по-прежнему возвращает временные интервалы, и поэтому мы не получим желаемых результатов, если тип db был datetimeoffset. Он будет работать, если тип datetime. – Xavier John 18 May 2015 в 20:25
  • 4
    точнее его System.Data.Entity.DbFunctions.TruncateTime – Kurkula 28 April 2018 в 20:13
     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();
0
ответ дан Serdari 22 August 2018 в 04:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: