亚音速3 + LINQ错误

时间:2009-08-19 19:25:48

标签: subsonic subsonic3

Subsonic 3.0.0.3的一个奇怪的错误

使用 - 作为示例 - AdventureWorksLT DB

当我运行此代码时

我为gname获取null(虽然name获取值ok) 并且w是0而不是第1行中的值 [如果我更改选择新的MyData以选择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; }
}

任何想法有什么不对

由于

麦克

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分: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)。您可以查看我的源代码并将其应用到您的亚音速代码中。