2009-06-15 3 views
0

Ich benutze SubSonic in meinem Projekt. Ich muss Zeilen auswählen, die nach bestimmten Bedingungen gefiltert sind. Ich versuche sqlquery wie folgt zu verwenden:SubSonic.SqlQuery ExecuteTypedList <T> nur neue Objekte zurückgeben

  SqlQuery q = new Select() 
      .From("TableName") 
      .Where(MyDALObject.Columns.Status) 
      .NotIn(new[] { 1, 8, 9, 22, 23}); 

      IList<MyDALObject> list =  
       q.ExecuteTypedList<MyDALObject>(); 

aber alle Objekte in Liste Liste sind neu. Was ist falsch?

+0

Eigentlich habe ich das Problem. Ich besitze meine BLL-Objekte mit DAL-Objekten. Wenn Sie SqlQuery verwenden, wird für die zurückgegebenen Objekte IsNew auf "true" (seltsamerweise) gesetzt. Ich checke ctor ein, wenn dalObj.IsNew es dann mit frischem Objekt anstelle und das ist ein Problem. Also schließe ich die Frage. MEIN CODE WAR AUCH NICHT FEHLERHAFT, NICHT SUBSONISCH. – TheVillageIdiot

+0

Oops kann es nicht schließen :( – TheVillageIdiot

Antwort

2

Versuchen Sie stattdessen:

MyDALObjectCollection = new Select() 
    .From(MyDALObject.Schema) 
    .Where(MyDALObject.Columns.Status).NotIn(new[] { 1, 8, 9, 22, 23}) 
    .ExecuteAsCollection<MyDALObjectCollection>(); 
+0

Großartig @Adam das ist nett. Wirklich habe ich das Problem. Ich binte meine BLL-Objekte mit DAL-Objekten. Und wenn Sie SqlQuery verwenden die zurückgegebenen Objekte hat IsNew auf wahr (seltsam) Ich checke ctor ein, wenn dalObj.IsNew es dann mit einem neuen Objekt einleite und das ist ein Problem. – TheVillageIdiot

Verwandte Themen