1

我对 Include Method 有问题,给定的场景

表仓库有列

  1. Id--> 唯一标识符和 PK
  2. 仓库编号--nvarchar(50)

--更多的列

表仓库链接记录器

  1. Id-->PK,唯一标识符
  2. 仓库UniqueId-->(FK,Unique Identifier),与“仓库”表Id列有关系
  3. 地位

仓库模型具有以下代码

public class Warehouse
{
    public Warehouse()
    {
        this.WarehouselnkedEcorders = new List<WarehouselnkedEcorder>();
    }
    //Some stuff

    public virtual ICollection<WarehouselnkedEcorder> WarehouselnkedEcorders 
    { get; set; }
}

WarehouselnkedEcOrdeMap 有以下代码

        // Relationships
        this.HasOptional(t => t.Warehouse)
            .WithMany(t => t.WarehouselnkedEcorders)
            .HasForeignKey(d => d.warehouseUniqueId);

询问

我需要检索状态 = true 的仓库实体列表。我尝试了以下方式,但无法获得结果。我怎样才能做到这一点?

  List<Warehouse> lstObjWarehouse = objWMSContext.Warehouses.Include("WarehouselnkedEcorders").Where(//o=>SomeCondition)
                                                       .Where(o => SomeCondition)
                                                       .Where(o => o.Deleted == false).ToList();

这里我需要比较“WarehouselnkedEcorder”每一行的status=true的值,它应该返回结果。

4

2 回答 2

1

在查询中使用 Any:

List<Warehouse> lstObjWarehouse = db.Warehouses.Include("WarehouselnkedEcorder")
.Where(o => o.invoicePath == "SomeCondition" 
&& o.Deleted == false 
&& o.WarehouselnkedEcorders.Any(p => p.id == o.id 
&& p.Deleted == false)).ToList();
于 2012-12-20T10:30:33.070 回答
0

固定匹配 1:many 条件

List<Warehouse> lstObjWarehouse =   objWMSContext.Warehouses.Include("WarehouselnkedEcorder")
                    .Where(o => o.somefield == "SomeCondition"
                  &&       o => o.Deleted == false
                  &&       o=>o.WarehouselnkedEcorders.Where(dep=>dep.status==true)
                 .ToList();
于 2012-12-19T13:33:05.923 回答