0

Entity Framework を使用した ASP.NET MVC4 プロジェクトがあります。

関連する MaterialPackingID = 123 の Request の数を (ラムダ式で)カウントする方法は?

ここに私のクラスがあります:

public class Request
{
    [Key]
    public virtual int RequestID { get; set; }
    public virtual ICollection<TransportedMaterial> TransportedMaterials { get; set; }
}

public class TransportedMaterial
{
    [Key]
    public int TransportedMaterialID { get; set; }                
    public MaterialPacking MaterialPacking { get; set; }
}


public class MaterialPacking
{
    public int MaterialPackingID { get; set; }
    public string DescriptionFr { get; set; }
    public string DescriptionNl { get; set; }
}

そう:

  • 1 つのリクエストに複数の TransportedMaterial が含まれる場合があります

  • 1 つの TransportedMaterial には 1 つの MaterialPacking が含まれます

ここに私が試すものがあります:

    public int CountExistingRequestsFilterByMaterialPacking(int id)
    {
        using (var unitOfWork = UnitOfWorkFactory.Create())
        {
            var requestRepository = unitOfWork.Create<Request>();
            var materialPackingRepository = unitOfWork.Create<MaterialPacking>();
            var materialPacking = materialPackingRepository.SingleOrDefault(x => x.MaterialPackingID == id);

            if (materialPacking == null)
                throw new FaultException("Packing not found");

            return requestRepository.GetAll().Where(x => x..... == materialPacking.MaterialPackingID).Count();
        }
    }

ありがとう。

4

1 に答える 1

0

このようなものは機能しますか?

return requestRepository.GetAll().Count(req => 
    req.TransportedMaterials.Any(tm => 
        tm.MaterialPacking.MaterialPackingID == materialPacking.MaterialPackingID)
    );

前提: 関心のあるものと一致する MaterialPackingID を持つ 1 つ以上の TransportedMaterial オブジェクトを含むリクエストの数が必要です。

于 2013-01-21T19:27:43.770 に答える