2009-08-19 81 views
1

了bug亞音速3.0.0.3亞音速3 + LINQ錯誤

使用 - 作爲一個例子 - AdventureWorksLT DB

當我運行這段代碼

我得到空值的gname(雖然名稱變值確定) 和W是0,而不是第一排 的值如果我改變選擇新邁德特只選擇MyData的 - 它的工作原理確定]

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

任何想法是錯誤的

感謝

邁克

回答

1

是的,我認爲有錯誤的時候亞音速嘗試投射到新類型類(非匿名和非源代類)。如果你喜歡這款

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

您的查詢將正常工作,或者如果你喜歡這款

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

作爲一個解決方案,請叉我的倉庫(http://github.com/funky81/SubSonic-3.0/commit/aa7a9c1b564b2667db7fbd41e09ab72f5d58dcdb)。您可以看到我的源代碼並將其應用到您的亞音速代碼中。