问题描述
IQueryable<Productosviewmodel> ProductosMaped =
from p in Db.Productos
join g in Db.Zona on p.ZonaId equals g.ZonaId
join acr in Db.Categoria on p.CategoriaId equals acr.Id
select new Productosviewmodel
{
Categoria = acr.NombreCategoria,ZonaGrupo = g.ZonaGrupo,NombreProducto = p.NombreProducto,ProductoTiene = p.ProductoTiene,RealizadosEvento = p.RealizadosEvento,FechaInicial = p.FechaInicial,FechaFin = p.FechaFin,};
sql 查询的结果返回 products 表必须具有的 1000 条记录及其区域和类别。
在 linq 中执行以下操作时,它仅返回 8 条记录...
for root,dirs,files in os.walk(my_root_directory):
for f in files:
if os.path.splitext(f)[1] != '.wav':
continue
file_path = os.path.join(root,f)
# do your stuff
我只需要链接这两个表,以便列表只显示 CategoryName 和 ZoneName 或 Group Zone。
解决方法
更好的主意:将 Include
与导航属性一起使用:
List<ProductosViewModel> list = await this.Db.Productos
.Include( p => p.Zona )
.Include( p => p.Categoria )
.Where( p => p.Categoria != null && p.Zona != null ) // <-- This step may be optional depending on your database.
.Select( p => new ProductosViewModel
{
Categoria = p.Categoria.NombreCategoria,ZonaGrupo = p.Zona.ZonaGrupo,NombreProducto = p.NombreProducto,ProductoTiene = p.ProductoTiene,RealizadosEvento = p.RealizadosEvento,FechaInicial = p.FechaInicial,FechaFin = p.FechaFin,} )
.ToListAsync()
.ConfigureAwait(false);