1

ドロップダウン選択リストを使用してフィルタリングするこのlinqクエリがあります。フィルターは機能しますが、都市が null であるテーブルからすべてのフィールドを選択したいと思います。この基準により、空の結果セットが得られます。都市のないエントリが 100 を超えているため、これは誤りです。

私のモデルにはこれがあります:

public class classA
{
   public string city {get; set;}   
   public ClassB somethingfromClassB{get; set;}    
}

public class classB
{
    //get set methods here
}

クラス A のコントローラーは次のようになります。

public class classA : controller
{
   public actionresult index()
   {
      //everything here works except this linq gives me an empty result sets:

      var a = db.classA.inlcude(t=>t.somethingfromClassB);
      if(value =="")
      {
          a=db.classA.where(u=>u.city==null).inlcude(t=>t.somethingfromClassB);
      }
      return view(a.tolist())
   }
}
4

3 に答える 3

0

左外部結合を実行したいと思いますか?

参照してください: LEFT OUTER JOIN を Entity Framework に変換する

および/または

方法: 左外部結合を実行する (C# プログラミング ガイド) http://msdn.microsoft.com/en-us/library/vstudio/bb397895.aspx

于 2013-09-25T17:36:29.740 に答える
0

Empty文字列をと認識している場合はNULL、まず考えを変える必要があります。次に、次のようにこれら 2 つのケースの両方を確認できます。

a= db.classA
     .where(u=>String.IsNullOrEmpty(u.city))
     .inlcude(t=>t.somethingfromClassB);
于 2013-09-25T17:43:10.783 に答える