У меня есть класс 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.
По сути, мне нужно использовать инициализатор объекта, или я не могу найти совпадение в этом поле.