2009-06-15 5 views
0

J'utilise SubSonic dans mon projet. J'ai besoin de lignes sélectionnées filtrées par certaines conditions. Je suis en train d'utiliser sqlquery comme suit:SubSonic.SqlQuery ExecuteTypedList <T> Renvoyer de nouveaux objets seulement

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

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

mais tous les objets dans la liste Liste sont nouveaux. Qu'est-ce qui ne va pas?

+0

En fait, j'ai eu le problème. J'initie mes objets BLL avec des objets DAL. et quand vous utilisez SqlQuery les objets retournés ont IsNew mis à vrai (étrangement). Je vérifie ctor si dalObj.IsNew alors init il avec l'objet frais et c'est problème. Donc je ferme la question. encore une fois, mon code était défectueux, pas celui de Subsonic. – TheVillageIdiot

+0

Oops ne peut pas le fermer :( – TheVillageIdiot

Répondre

2

Essayez ceci:

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

Great @Adam c'est sympa En fait, j'ai eu le problème.Il initie mes objets BLL avec des objets DAL et quand vous utilisez SqlQuery les objets retournés a IsNew mis à vrai (étrangement) Je vérifie ctor si dalObj.IsNew puis init il avec un objet frais et c'est un problème. – TheVillageIdiot

Questions connexes