2016-08-14 5 views
1

LINQクエリは、以下の形式で使用しています。問題は、リストの形で100 consumerIDのリストを渡していることです。私はデータベースにクエリを行い、 のすべての100個のconsumerIdsの結果を取得したいと思います。しかし、クエリは最初の人のためだけに結果を返します。 where句に何かがないと思っています。私はこれらの100のconsumerIdsすべてのデータベースに一致する結果があると確信しています。ここでLINQクエリを使用してデータベースにクエリを発行してDTOのリストを表示する際の問題

public ICollection<ConsumerExchangeChangeDto> GetByConsumers(List<int> consumerIDs) 
{ 
    EnrollmentReportingModel db = (EnrollmentReportingModel)Context.DbContext; 
    var results = (from ecew in db.A 
     join ecewe in db.B on ecew.ID 
     equals ecewe.ExchangeChangeEnrollmentWindowID into temp 
     from j in temp.DefaultIfEmpty() 
     join cecr in db.C on ecew.ConsumerExchangeChangeRequestID equals cecr.ID 
     join con in db.D on cecr.ConsumerID equals con.ID 
     where consumerIDs.Contains(con.ID) && !ecew.Deleted 
     select new E 
     { 
      ConsumerID = con.ID, 
      OrganizationID = con.OrganizationID, 
      StartDate = ecew.StartDate, 
      EndDate = ecew.EndDate, 
      Deleted = ecew.Deleted 
     }).ToList(); 
    return results; 
} 

DTOクラスは、私はあなたがどれをしたいと思います

public class E : ILzDto 
{ 
    public int ConsumerID { get; set; } 
    public int OrganizationID { get; set; } 
    public DateTime? StartDate { get; set; } 
    public DateTime? EndDate { get; set; } 
    public bool Deleted { get; set; } 
} 
+0

をあなたは 'consumerIDs'パラメータを持っているどのように多くのアイテム?テーブルに 'Deleted = true'というレコードがいくつありますか? – Shyju

+0

タイプEのリストを作成していますが、この関数はタイプConsumerExchangeChangeDtoを返します。このコンパイルはどのようにできますか? – Hogan

答えて

1

あり、含まれていません:

public ICollection<ConsumerExchangeChangeDto> GetByConsumers(List<int> consumerIDs) 
{ 
    EnrollmentReportingModel db = (EnrollmentReportingModel)Context.DbContext; 
    var results = (from ecew in db.A 
     join ecewe in db.B on ecew.ID 
     equals ecewe.ExchangeChangeEnrollmentWindowID into temp 
     from j in temp.DefaultIfEmpty() 
     join cecr in db.C on ecew.ConsumerExchangeChangeRequestID equals cecr.ID 
     where consumerIDs.Any(x => x == cecr.ConsumerID) && !ecew.Deleted 
     select new E 
     { 
      ConsumerID = cecr.ConsumerID, 
      OrganizationID = con.OrganizationID, 
      StartDate = ecew.StartDate, 
      EndDate = ecew.EndDate, 
      Deleted = false 
     }).ToList(); 
    return results; 
} 
関連する問題