2016-07-27 13 views
0

LINQクエリを使用してデータを抽出し、モデルリストに追加しようとしました。このリストでは、いくつかのフィールド値が必要ですが、すべてのテーブルフィールドがnull値で返されています。私はモデルの最初のアプローチを使用しているので、すべてのモデルクラスは、すべてのテーブルフィールド名を持つget setメソッドを作成するので、データを取得しているときにいくつかのフィールドを削除します。C#のモデルリストからnull値の要素を削除するにはどうすればよいですか?

この私のコード

for (var z = 0; z < room_ament_list.Count(); z++)  
{ 
    var deal_room_amentity_id = room_ament_list[z]; 
    var deal_room_amentity_details = db.deal_room_amentity.Where(a => a.room_amenity_id == deal_room_amentity_id).ToList(); 

    foreach (var item_r_amentity in deal_room_amentity_details) 
    { 
     deal_room_amentity_list.Add(new deal_room_amentity() 
     { 
      room_amenity_id = item_r_amentity.room_amenity_id, 
      amenity_type = item_r_amentity.amenity_type, 
     }); 
    } 
} 

この私のテーブル構造

table structure in my database

そして、これが

returning data from the list

そのリストからデータを返している。しかし、私は解凍する必要がありますwhのデータ私はリスト(null要素なし)に割り当てました。リストからそれらのnull値要素を削除することは可能ですか?私が正しくあなたの質問を理解していた場合は、次のように

+0

amenity_type == nullの場合はどういう意味ですか? –

+0

リストからImagePathとIDを削除したいリスト(room_amenity_id、amenity_type)に追加するときに値を割り当てたものだけが必要 –

答えて

1

は、あなたはあなたのLINQクエリを変更できます。

var deal_room_amentity_details = db.deal_room_amentity 
    .Where(a => a.room_amenity_id == deal_room_amentity_id 
    && a.room_amenity_id != null).ToList(); 
+0

ImagePathとIDをリストから削除したい値を割り当てたものだけが必要ですリストに追加するとき(room_amenity_id、amenity_type) –

0

は、あなたは、あなたのLinqクエリでオブジェクト定義を指定することで、SQLテーブルから必要な情報だけをダウンロードすることができます。

var data = from x in db.deal_room_amentity 
     where 
       x.room_amenity_id == deal_room_amentity_id 
     select new { 
       id = x.id, 
       room_amenity_id = x.room_amenity_id 
     }; 
    foreach(var item_r_amentity in data){ 
     deal_room_amentity_list.Add(new deal_room_amentity() 
      { 
       room_amenity_id = item_r_amentity.room_amenity_id, 
       amenity_type = item_r_amentity.amenity_type, 
      }); 
    } 
+0

あなたの返信をありがとうが、これは同じ結果を返します。私はImage_PathとIDをdeal_room_amentity_listから削除したいのですか? –

+0

上記の構文は、選択したいフィールドのいずれに対しても機能し、 'data'の結果を任意のカスタムエンティティに適用することができます。 'ImagePath'と' id'はあなたのコードに現れる必要はありません。 – Jace

関連する問題