1

インクルードメソッド、与えられたシナリオに問題があります

テーブルウェアハウスには列があります

  1. Id->一意の識別子とPK
  2. WarehouseNumber--nvarchar(50)

-さらにいくつかの列

テーブルWarehouselnkedEcorders

  1. Id-> PK、一意の識別子
  2. WarehouseUniqueId->(FK、Unique Identifier)、「Warehouse」テーブル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);

クエリ

status=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:多くの条件に一致するように修正

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 に答える