2016-07-27 35 views
0

我嘗試使用LINQ查詢提取數據並添加到模型列表中。在此列表中,只需要一些字段值,但它會返回包含空值的所有表字段。我有使用模型的第一種方法,所以所有的模型類將創建與所有表字段名稱的get set方法,所以我想刪除一些字段,當我檢索數據是否有可能?如何從C#中的模型列表中刪除空值元素?

這是我的代碼

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的數據在列表中分配(沒有空元素)。是否可以從列表中刪除那些空值元素?

+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

感謝您的回覆,但這也返回相同的結果我想從deal_room_amentity_list中刪除ImagePath和id是他們的任何方式? –

+0

上述語法適用於您想要選擇的任何字段,並且可以將來自'data'的結果應用到您選擇的任何自定義實體中。 'ImagePath'和'id'甚至不必出現在你的代碼中。 – Jace