如何解决Linq 中的特定查询它与 SQL Server 中的内部联接执行的操作不同
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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。