[英]entity framework query select new concat
我該怎么做? 我相信問題在於“選擇”中的串聯。
var respaldos = db.Respaldoes.Where(x => x.type == "Backup")
.Where(x => x.start_time >= _desde && x.start_time <= _hasta)
.GroupBy(x => new
{
x.start_time.Year,
x.start_time.Month,
x.start_time.Day
})
.Select(x => new
{
periodo = x.Key.Day + "/" + x.Key.Month + "/" + x.Key.Year,
objetos = x.Sum(y => y.bytes_processed)
});
foreach (var obj in respaldos)
{
Dictionary<string, string> dicciconario = new Dictionary<string, string>();
dicciconario.Add("periodo", obj.periodo.ToString());
dicciconario.Add("objetos", obj.objetos.ToString());
}
運行應用程序時出現錯誤,該錯誤在“ foreach”中
錯誤:沒有虛擬轉換“ System.Int32”和“ System.Object”。 對實體的LINQ轉換為原始的EDM枚舉。
我嘗試惠特:
.Select(x => new
{
periodo = x.Key.Day.ToString() + "/" + x.Key.Month.ToString() + "/" + x.Key.Year.ToString(),
objetos = x.Sum(y => y.bytes_processed)
});
我收到其他錯誤:
LINQ to Entities no reconoce el System.System.String ToString(),yestodo,沒有必要的演示文稿。
您似乎想按沒有時間成分的日期進行分組。 EF具有以下功能:DbFunctions.TruncateTime:
var respaldos = db.Respaldoes.Where(x => x.type == "Backup")
.Where(x => x.start_time >= _desde && x.start_time <= _hasta)
.GroupBy(x => DbFunctions.TruncateTime(x.start_time))
.Select(x => new
{
periodo = x.Key, // Now a DateTime value
objetos = x.Sum(y => y.bytes_processed)
});
之后,您可以
Dictionary<DateTime, int> dicciconario =
respaldos.ToDictionary(x => x.periodo, x => x.objetos);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.