2016-07-27 5 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

Вы можете скачать только необходимую информацию из таблицы SQL, указав определение объекта в вашем Linq запросе.

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

Спасибо за ваш ответ, но это также возвращает тот же результат. Я хочу удалить ImagePath и id из deal_room_amentity_list - это их способ? –

+0

Синтаксис выше будет работать для любого из полей, которые вы хотите выбрать, и вы можете применять результаты от 'data' к любой настраиваемой сущности по вашему выбору. 'ImagePath' и' id' даже не должны появляться в вашем коде. – Jace

Смежные вопросы