首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据实体框架核心中的不同列选择所有行

根据实体框架核心中的不同列选择所有行
EN

Stack Overflow用户
提问于 2019-01-31 20:29:20
回答 2查看 7.1K关注 0票数 1

我有一个包含一些数据的表,我希望使用.NET核心实体框架来选择具有唯一日期的行。我希望将结果作为唯一行的列表返回。这是密码。

代码语言:javascript
运行
复制
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.Record>‘转换为'System.Collections.Generic.IEnumerable< Test.API.Models.Record>’。存在显式转换(是否缺少强制转换?)

还有其他方法可以实现我的期望,或者我在代码中遗漏了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-01 03:11:54

首先,按以下方式创建一个DTO

代码语言:javascript
运行
复制
public class RecordsByDateDTO
{
    public DateTime Date {get; set;}
    public List<Record> Records {get; set;}
}

若要选择具有唯一日期的行,必须使用.GroupBy并编写GetUniqueRecordsByDate方法,如下所示:

代码语言:javascript
运行
复制
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;
} 
票数 0
EN

Stack Overflow用户

发布于 2019-02-01 06:10:26

代码语言:javascript
运行
复制
var rowsToReturn = await _context.Records
            .Where(b => b.SId == bId)
            .Select(d => d.Date)
            .Distinct()
            .OrderBy(d => d)
            .AsEnumerable()
            .ToListAsync();
return rowsToReturn;

在AsEnumerable()之前使用ToListAsync()。看起来不错。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54468767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档