2017-01-15 12 views
-1

私のクエリに問題があります。私のテーブルでは、Activeがtrueに設定された2つの要素があります。テストのために、私は偽の要素(リストは0要素を返す)だけを選択しようとしますが、私は常に2つの要素を取得します。EFが正しいエンティティを取得しません

ドメインクラス

public Guid OrderStatusId { get; set; } 
public string Name { get; set; } 
public bool Active { get; set; } 
public string Description { get; set; } 

SQLの要素

OrderStatusId = Guid.NewGuid(), Name = "xxx", Active = true, Description = "yyy" 
OrderStatusId = Guid.NewGuid(), Name = "zzz", Active = true, Description = "xxx" 

エンティティ私は間違って何をやっている

public List<SlOrderStat> getDataFromSlOrderStat(string name, bool? activity) 
{ 
    activity = false; 

    using (var ctx = new ServisContex(conectionString)) 
    { 
     var list = ctx.SlOrdersStats;    

     if (name != string.Empty) 
      list.Where(l => l.Name != name); 

     if (activity != null) 
      list.Where(l => l.Active == activity); 

     return list.ToList(); 
    } 
} 

選択?

答えて

1

あなたがリスト自体の内容には影響を与えません

var result = list.Where(l => l.Name != name); 

list.Where(...)を行う必要があります。

+0

私は暗黙のうちに 'System.Linq.IQueryable'をSystem.Data.Entity.DbSetに変換することはできません。 – Newer

+0

ああ、最も簡単な解決策は、結果を別の変数に割り当てることです。私の答えを訂正してください。 –

関連する問題