Я хочу добиться следующего:
return (from a in db.Tags
select new TagItem
{
ID = a.Id,
Name = a.Name
});
.. но я не хочу этого достигать, потому что мне нужно использовать точно такую же конструкцию TagItem в другом месте (для объединения)
Итак, это намерение вызвать метод, который создает TagItem для меня:
return (from a in db.Tags
select ConstructTagItem(a));
И метод создает объект таким же образом:
private TagItem ConstructTagItem(Tag a)
{
return new TagItem { ID = a.Id, Name = a.Name};
}
Но это дает мне следующую ошибку:
Метод 'TagItem ConstructTagItem (Tag)' не поддерживает перевод в
SQL.
Есть ли способ достичь этого?
Решение (спасибо Даниэль Хилгарт):
return db.Tags.Select(ConstructTagItem);
И метод:
private Expression<Func<Tag, TagItem>> ConstructTagItem
{
get { return a => new TagItem {ID = a.Id Name = a.Name }; }
}