2009-08-19 9 views
1

Un bug bizarre avec Subsonic 3.0.0.3Subsonic 3 + LINQ bug

En utilisant - comme un exemple - AdventureWorksLT DB

Quand je lance ce code

Je reçois nulle pour gname (bien que le nom obtient la valeur ok) et w est 0 au lieu de la valeur dans la 1ère ligne [Si je change sélectionnez nouveau MyData juste de sélectionner MyData - il fonctionne OK]

class Program { 
    static void Main(string[] args) { 

     var q = from g in Product.All() 
       select new MyData{ 
        gname = g.Name, 
        name = g.Name, 
        w = g.Weight.Value 
       }; 
     var list00 = q.Take(1).ToList(); 
     Console.WriteLine(list00[0].gname); 
    } 
} 
public class MyData { 
    public string gname { get; set; } 
    public string name { get; set; } 
    public decimal w { get; set; } 
} 

Toutes les idées ce qui est mal

Merci

Mike

Répondre

1

Oui, je pense qu'il ya un bug lorsque vous essayez subsonique de se projeter dans une nouvelle classe typée (classe non anonyme et non source).

Votre requête fonctionnera bien si vous aimez cette

var q = from g in Product.All() 
     select new{ 
      gname = g.Name, 
      name = g.Name, 
      w = g.Weight.Value 
     }; 

ou si vous aimez cette

var q = from g in Product.All() 
     select g; 

Comme solution, s'il vous plaît fourche mon dépôt (http://github.com/funky81/SubSonic-3.0/commit/aa7a9c1b564b2667db7fbd41e09ab72f5d58dcdb). Vous pouvez voir mon code source et l'appliquer dans votre code subsonique.