Дозвуковая ошибка 3 + LINQ - PullRequest
       16

Дозвуковая ошибка 3 + LINQ

1 голос
/ 19 августа 2009

Странная ошибка с Subsonic 3.0.0.3

Использование - в качестве примера - AdventureWorksLT DB

Когда я запускаю этот код

Я получаю нулевое значение для gname (хотя 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; }
}

Любые идеи, что не так

Спасибо

Mike

Ответы [ 2 ]

1 голос
/ 20 августа 2009

Да, я думаю, что есть ошибка, когда дозвуковая попытка проецировать в новый типизированный класс (не анонимный и не исходный класс).

Ваш запрос будет работать нормально, если вам это нравится

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). Вы можете увидеть мой исходный код и применить его в своем дозвуковом коде.

1 голос
/ 20 августа 2009

Я думаю, что в настоящее время есть некоторые ошибки с проекцией: http://groups.google.com/group/subsonicproject/browse_thread/thread/2b569539b7f67a34/6f703e0e4ce15141?lnk=gst&q=projection#6f703e0e4ce15141

...