如何基于C#实体框架中的另一个字段获取记录数?

问题描述 投票:0回答:1

我有一个表格,存储患者的预约时间和日期。可以在一天的同一时间为多于一名的患者进行预约。

我的桌子看起来像这样:

|    Date    |  Time |  PatientID |
+------------+-------+------------+
| 2020/06/08 | 12:00 |      12    |
| 2020/06/08 | 12:00 |      15    |
| 2020/06/08 | 12:00 |      17    | 
| 2020/06/08 | 13:00 |      20    | 
| 2020/06/08 | 13:00 |      14    | 

我需要在gridview中显示'Time'和每次的计数。我的意思是:

|  Time |  Count |
+-------+--------+
| 12:00 |   3    |
| 13:00 |   2    |

我该怎么做?

我尝试过的-第一次尝试:

public List<Tbl_FutureTurnLocalModel> getReservedTime(int BillDate)
{
    List<Tbl_FutureTurnLocalModel> _reservedTime = _ClinicEntities.Tbl_ImagingFutureTurnDetail
         .Where(w => w.TurnDate == BillDate)
         .OrderBy(o => o.TurnTime)
         .Select(s => new Tbl_FutureTurnLocalModel
         {
             ReservedBillTime = s.TurnTime,
             ReservedCount = s.TurnTime.Count()
         })
         .ToList();

     return _reservedTime;
}

[Tbl_FutureTurnLocalModel是:

public partial class Tbl_FutureTurnLocalModel
{
    public string ReservedBillTime { get; set; }
    public int ReservedCount { get; set; }
}

但是会引发错误:

dbdistinctexpression需要集合参数。参数名称参数

SO中对同一问题的回答说:

public List<Tbl_FutureTurnLocalModel> getReservedTime(int BillDate)
{
    List<Tbl_FutureTurnLocalModel> _reservedTime = _ClinicEntities.Tbl_ImagingFutureTurnDetail
         .Where(w => w.TurnDate == BillDate)
         .OrderBy(o => o.TurnTime)
         .Select(s => new Tbl_FutureTurnLocalModel
         {
             ReservedBillTime = s.TurnTime,
             ReservedCount = s.Count()
         })
         .ToList();

     return _reservedTime;
}

但是出现调试时间错误。

c# entity-framework gridview datasource
1个回答
-1
投票
.OrderBy(x => x.Time).GroupBy(x => x.Time).Select(x => new {x.Time})
© www.soinside.com 2019 - 2024. All rights reserved.