Почему мой LINQtoObject IQueryable рассматривается как LINQtoSQL и не поддерживает перевод на SQL - PullRequest
0 голосов
/ 21 сентября 2010

У меня есть класс LINQ dbml, который я обертываю в POCO.Я построил перегруженные конструкторы, которые принимают класс DBML и init.свойства объектов-оболочек, основанные на переданном объекте dbml.

Например,

public class MyPerson{

   public MyPerson(DBMLPerson p)
   {
        this.ID = p.ID;
        this.Name = p.Name;
   }
}

, если я затем сделаю что-то подобное, где я верну IQueryable

{

return from p in datacontext.DBMLPerson
        select new MyPerson(p){};
}

Когда я пытаюсь выполнить дополнительные запросы для этого Iquearble, я получаю «System.NotSupportedException: у члена« MyPerson.ID »нет поддерживаемого перевода в SQL ..» *

Однако если я это сделаюthis {

return from p in datacontext.DBMLPerson
        select new MyPerson(){
            ID = p.ID;
            Name = p.Name;
        };
}

Я не получаю ошибку вообще, и все работает отлично.По сути, я хочу, чтобы мой класс обрабатывал преобразование объекта LINQ в сам POCO.

По сути, мне нужно использовать инициализатор объекта, или я не могу найти совпадение в этом поле.

1 Ответ

1 голос
/ 21 сентября 2010

Хорошо, не уверен, что это действительно поможет кому-либо, кроме меня, но вся моя проблема в том, что я не должен использовать IQuerable после определенного момента (вне моего хранилища)

iqueryable-can-убить-ваша собака-стил-ваша жена-убить-ваш-волю к проживанию и т.д.

...