按两个条件(日期和车辆编号)分组的数据库记录计数并在索引页面中显示错误
Count database record grouped by two criteria (date & Vehicle number) and display error in index page
我是 asp.net MVC 的新手。我希望任何人都可以帮助我。
这是一个用于维护多辆车的燃料费用记录的程序。
如果一个月内特定车辆的燃油输入记录超过 5 条,我想创建一条消息以显示。例如,当某辆车的燃油输入记录数在一个月内达到 5 条以上时 "June 2020",则应在索引页或主页上显示错误消息。我一直在寻找这个但没有运气。
模型、控制器和视图的相关位如下。
车辆列表型号:
namespace VehicleReg2.Models
{
public class VehicleList
{ [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public byte Id { get; set; }
public string VType { get; set; }
public string RegNumber { get; set; }
public string ModelMake { get; set; }
}}
燃油型号:
namespace VehicleReg2.Models
{
public class Fuel
{
public int Id { get; set; }
[DataType(DataType.Currency)]
public decimal FAmount { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MMM/yyyy}")]
public DateTime FDate { get; set; }
public VehicleList VehicleList { get; set; }
public byte VehicleListId { get; set; }
public double FQty { get; set; }
}}
燃油控制器指数:
public ViewResult Index()
{var fuel = _context.Fuels.Include(c => c.VehicleList).ToList();
return View(fuel);
}
您必须按 Date
进行分组,然后再进行 Count
控制。我没有尝试下面的查询,但它应该与您想要的类似;
db.Fuels.GroupBy(x => x.FDate.Date)
.Where(x => x.ToList().VehicleList.RegNumber.Count() > 5)
.ToDictionary(x => x.Key, x => x.ToList());
下面的查询查找每个 month
中特定 Vehicle
的所有 Fuel
条目(超过 5 个)
db.Fuels.GroupBy(x => new { x.FDate.Date, x.VehicleListId })
.Where(x => x.Count() > 5)
.ToDictionary(x => x.Key, x => x.ToList());
我是 asp.net MVC 的新手。我希望任何人都可以帮助我。
这是一个用于维护多辆车的燃料费用记录的程序。 如果一个月内特定车辆的燃油输入记录超过 5 条,我想创建一条消息以显示。例如,当某辆车的燃油输入记录数在一个月内达到 5 条以上时 "June 2020",则应在索引页或主页上显示错误消息。我一直在寻找这个但没有运气。
模型、控制器和视图的相关位如下。
车辆列表型号:
namespace VehicleReg2.Models
{
public class VehicleList
{ [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public byte Id { get; set; }
public string VType { get; set; }
public string RegNumber { get; set; }
public string ModelMake { get; set; }
}}
燃油型号:
namespace VehicleReg2.Models
{
public class Fuel
{
public int Id { get; set; }
[DataType(DataType.Currency)]
public decimal FAmount { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MMM/yyyy}")]
public DateTime FDate { get; set; }
public VehicleList VehicleList { get; set; }
public byte VehicleListId { get; set; }
public double FQty { get; set; }
}}
燃油控制器指数:
public ViewResult Index()
{var fuel = _context.Fuels.Include(c => c.VehicleList).ToList();
return View(fuel);
}
您必须按 Date
进行分组,然后再进行 Count
控制。我没有尝试下面的查询,但它应该与您想要的类似;
db.Fuels.GroupBy(x => x.FDate.Date)
.Where(x => x.ToList().VehicleList.RegNumber.Count() > 5)
.ToDictionary(x => x.Key, x => x.ToList());
下面的查询查找每个 month
Vehicle
的所有 Fuel
条目(超过 5 个)
db.Fuels.GroupBy(x => new { x.FDate.Date, x.VehicleListId })
.Where(x => x.Count() > 5)
.ToDictionary(x => x.Key, x => x.ToList());