2016-07-19 10 views
-1

Ich versuche, ein flexibles Projekt zu erstellen, das ein-/ausschalten kann, welche Datenebene ausgegeben wird, Basic oder Deluxe. Ich habe eine Linq-Abfrage, die mein Basispaket von Daten und Kopfzeilen (Firma, URL, Land) ausgibt. Nehmen wir an, ich habe auch ein deluxe Paket von Daten (Spalten sind Adresse, Revenue Range, CompanyAge). Mein Endziel ist es, eine Umschaltfunktion zu implementieren, so dass, wenn das IsDeluxe-Feld in meiner SQL-Tabelle wahr ist, dann die Deluxe-Header hinzugefügt werden und die Deluxe-Daten zusätzlich zu den Basisfeldern ausgegeben werden. Bisher habe ich so etwas wie:bedingte IF-Anweisung in LINQ

var dataPackage = from c in db.company select new { c }; 

if(IsClientDeluxe == true) 
    { 
    HeaderRow.Add(String.Format("{0}", "Address")); 
    HeaderRow.Add(String.Format("{0}", "Revenue Range")); 
    HeaderRow.Add(String.Format("{0}", "Company Age")); 
    } 

var results = dataPackage.ToList() 

jedoch mein IF-Bedingung wird nicht meine SQL-Spalte erkennen, und ich habe keine Ahnung, wie die Daten in der entsprechenden Zeile zu schreiben. Jede Hilfe wird geschätzt, danke im Voraus!

+0

Welche Spalten versuchen Sie auf db.company zugreifen? – konkked

+0

die ersten drei für die Basisdatenebene (Firma, URL, Land) und die nächsten drei aus der Deluxe-Ebene (Adresse, Rev-Bereich, Unternehmensalter), wenn IsClientDeluxe == true –

Antwort

0

Können Sie nicht davon ausgehen, dass alles ein Element ist, das die gültigen zusätzlichen Header enthält?

var dataPackage = from c in db.company select new { 
       c.IsDeluxe, 
       c.Address, 
       c.RevenueRange, 
       c.CompanyAge }; 


var actualItems = new List<SomeObject>(); 

foreach(var item in dataPackage) 
{ 
    var addingItem = new SomeObject(); 

    if(item.IsDeluxe) 
    { 
     //Initialize some object one way 
    } 
    else 
    { 
     //Initialize some object another way 
    } 

    actualItems.Add(adding); 

} 

Es kann viel einfacher sein, nur Linq to SQL verwenden, um Ihre Daten für Sie und wenn Sie mehr beteiligt decisioning zu tun haben Sie ausdrücken, dass in regelmäßigen C#