簡體   English   中英

實體框架查詢選擇新的連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM