【问题标题】:Subsonic 3 + LINQ bug亚音速 3 + LINQ 错误
【发布时间】:2009-08-21 14:30:31
【问题描述】:

Subsonic 3.0.0.3 的一个奇怪错误

以 AdventureWorksLT DB 为例

当我运行这段代码时

我得到 gname 的空值(尽管 name 的值正常) w 是 0 而不是第一行的值 [如果我将 select new 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; }
}

任何想法有什么问题

谢谢

迈克

【问题讨论】:

    标签: subsonic subsonic3


    【解决方案1】:
    【解决方案2】:

    是的,我认为当 subsonic 尝试投影到新的类型类(非匿名和非源类)时存在错误。

    如果您这样做,您的查询将正常工作

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 2010-10-28
      • 2010-09-20
      相关资源
      最近更新 更多