亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據實體框架核心中的不同列選擇所有行

根據實體框架核心中的不同列選擇所有行

C#
呼啦一陣風 2022-08-20 14:53:34
我有一個包含一些數據的表,我想使用.NET核心實體框架選擇具有唯一日期的行。我想將結果作為唯一行的列表返回。下面是代碼。public async Task<IEnumerable<Records>> GetUniqueRecordsByDate(int bId) {     var rowsToReturn = await _context.Records                 .Where(b => b.SId == bId)                 .Select(d => d.Date)                 .Distinct()                 .OrderBy(d => d)                 .ToListAsync();                 return rowsToReturn; }我正在嘗試應用上述代碼,但我收到此錯誤無法將類型“System.Collections.Generic.List< System.Linq.IGrouping< System.DateTime, Test.API.Models.Records>>'轉換為'System.Collections.Generic.IEnumerable<Test.API.Models.Record>'。存在顯式轉換(您是否缺少強制轉換?有沒有其他方法可以實現以獲得我的期望,或者我在代碼中遺漏了一些東西?
查看完整描述

2 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

首先做一個如下:DTO


public class RecordsByDateDTO

{

    public DateTime Date {get; set;}

    public List<Record> Records {get; set;}

}

若要選擇具有唯一日期的行,必須按如下方式使用和編寫方法:.GroupByGetUniqueRecordsByDate


public async Task<List<RecordsByDateDTO>> GetUniqueRecordsByDate(int bId)

{

     var recordsByDate = await _context.Records.Where(r => r.SId == bId).GroupBy(r => r.Date)

                              .Select(group => new RecordsByDateDTO

                              {

                                   Date =  group.Key,

                                   Records = group.ToList()

                              }).OrderBy(r => r. Date).ToListAsync();


    return recordsByDate;


查看完整回答
反對 回復 2022-08-20
?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

var rowsToReturn = await _context.Records
            .Where(b => b.SId == bId)
            .Select(d => d.Date)
            .Distinct()
            .OrderBy(d => d)
            .AsEnumerable()
            .ToListAsync();return rowsToReturn;

在 ToListAsync() 之前使用 AsEnumerable()。它會起作用。


查看完整回答
反對 回復 2022-08-20
  • 2 回答
  • 0 關注
  • 95 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號