У меня есть класс 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 ..»
Однако если я сделаю это {
return from p in datacontext.DBMLPerson
select new MyPerson(){
ID = p.ID;
Name = p.Name;
};
}
У меня вообще нет ошибок и все работает отлично. В основном я хочу, чтобы мой класс обрабатывал преобразование объекта LINQ в сам POCO.
В основном мне нужно использовать инициализатор объекта, иначе я не могу сопоставить это поле.