2016-07-27 16 views
0

Ich versuche, Daten mit LINQ-Abfrage zu extrahieren und in eine Modellliste hinzuzufügen. In dieser Liste brauche ich nur einige der Felder Werte, aber es gibt alle Tabellenfelder include mit Nullwerten zurück. Ich habe Modell ersten Ansatz verwenden, so dass alle Modellklassen die Get-Set-Methoden mit allen Namen der Tabellenfelder erstellen, so dass ich einige Felder entfernen möchte, wenn ich die Daten abrufe Ist es möglich?Wie NULL-Werte Elemente aus der Modellliste in C# entfernen?

Das ist mein Code

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, 
     }); 
    } 
} 

diese meine Tabellenstruktur

table structure in my database

Und diese Daten aus dieser Liste

returning data from the list

Aber ich brauche Rückkehr der Extrahieren Daten von wh at Ich habe in der Liste zugewiesen (ohne Null-Elemente). Ist es möglich, diese Null-Wert-Element aus der Liste zu entfernen?

+0

Meinst du wo amenity_type == null? –

+0

Ich möchte ImagePath und id aus der Liste entfernen Ich brauche nur, was ich den Wert beim Hinzufügen zur Liste zugewiesen habe (room_amenity_id, amenity_type) –

Antwort

1

Wenn ich Ihre Frage richtig bin zu verstehen, könnte man Sie LINQ-Abfrage wie folgt ändern:

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

Ich möchte ImagePath und id aus der Liste entfernen Ich brauche nur, was ich den Wert zugewiesen habe wenn Sie zur Liste hinzufügen (room_amenity_id, amenity_type) –

0

können Sie laden nur die Informationen, die Sie aus einer SQL-Tabelle müssen durch eine Objektdefinition in Ihrer Linq Abfrage angeben.

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

Danke für Ihre Antwort, aber dies bringt auch das gleiche Ergebnis zurück Ich möchte ImagePath und die ID aus der deal_room_amentity_list entfernen ist ihr egal ??? –

+0

Die obige Syntax funktioniert für jedes der Felder, die Sie auswählen möchten, und Sie können die Ergebnisse von 'data' in jeder benutzerdefinierten Entität Ihrer Wahl anwenden. 'ImagePath' und' id' müssen nicht einmal in Ihrem Code erscheinen. – Jace

Verwandte Themen