如何包含另一个相关对象以使用 Entity Framework 进行查询并将其显示在 DataGridView 中?
How to include another related object to query using Entity Framework and show it in DataGridView?
我不知道如何正确提出这个问题,但我正在编写一个销售系统,我的问题很简单,但我对使用 WindowsForm 的 DataGridView[=41 没有很好的经验=]。我想在 DataGridView 中显示每次销售的总价,但为了获得总价,我需要对相关的每个产品求和table.
这些是我的销售额 tables:
我正在尝试通过 PrecioTotal.
求出每笔销售的总价
这是我的代码:
public IList<Factura> GetListVentas()
{
return _context.Facturas
.OrderByDescending(a => a.FechaVenta)
.ToList();
}
我的 windows 在 DataGridview 中显示项目的表单代码:
BindingSource source = new BindingSource();
var ventas = _facturasRepository.GetListVentas();
source.DataSource = ventas;
Listaventas.DataSource = typeof(List<>);
Listaventas.DataSource = source;
我尝试过的:
public IList<Factura> GetListVentas()
{
return _context.Facturas
.Include(a => a.DetalleFacturas.Sum(b => b.PrecioTotal))
.OrderByDescending(a => a.FechaVenta)
.ToList();
}
但是我得到这个错误:
System.ArgumentException: 'The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties.
public class FacturaDto{
public decimal Total {get;set;}
...
}
public IList<FacturaDto>GetListVentas()
{
return _context.Facturas
.Include(a => a.DetalleFacturas). OrderByDescending(a => a.FechaVenta).Select(x=> new FacturaDto{Total = x.DetalleFacturas.Sum(b => b.PrecioTotal), ...})
.ToList();
}
我不知道如何正确提出这个问题,但我正在编写一个销售系统,我的问题很简单,但我对使用 WindowsForm 的 DataGridView[=41 没有很好的经验=]。我想在 DataGridView 中显示每次销售的总价,但为了获得总价,我需要对相关的每个产品求和table.
这些是我的销售额 tables:
我正在尝试通过 PrecioTotal.
求出每笔销售的总价这是我的代码:
public IList<Factura> GetListVentas()
{
return _context.Facturas
.OrderByDescending(a => a.FechaVenta)
.ToList();
}
我的 windows 在 DataGridview 中显示项目的表单代码:
BindingSource source = new BindingSource();
var ventas = _facturasRepository.GetListVentas();
source.DataSource = ventas;
Listaventas.DataSource = typeof(List<>);
Listaventas.DataSource = source;
我尝试过的:
public IList<Factura> GetListVentas()
{
return _context.Facturas
.Include(a => a.DetalleFacturas.Sum(b => b.PrecioTotal))
.OrderByDescending(a => a.FechaVenta)
.ToList();
}
但是我得到这个错误:
System.ArgumentException: 'The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties.
public class FacturaDto{
public decimal Total {get;set;}
...
}
public IList<FacturaDto>GetListVentas()
{
return _context.Facturas
.Include(a => a.DetalleFacturas). OrderByDescending(a => a.FechaVenta).Select(x=> new FacturaDto{Total = x.DetalleFacturas.Sum(b => b.PrecioTotal), ...})
.ToList();
}