У меня есть простой старый объект CLR, который по сути является оболочкой для двух объектов инфраструктуры сущностей, я делаю это, чтобы передать этот объект-оболочку в строго типизированное представление в среде MVC. Мой класс оболочки foo очень прост:
public class FooWrapper
{
public FooWrapper(Foo f, Bar b)
{
this.FooObject = f;
this.BarObject = b;
}
public Foo FooObject { get; private set; }
public Bar BarObject { get; private set; }
}
То, что у меня есть для моей функции ListFoosWithBars, выглядит следующим образом:
public IEnumerable<FooWrapper> ListFoosWithBars(int userID)
{
IEnumerable<Bar> tempBar = ListBarsByUserID(userID);
IEnumerable<FooWrapper> results = (from f in _entities.FooSet
join b in tempBar on f.ID equals b.foos.ID
select new FooWrapper(f, b));
return results;
}
Это не работает, потому что, очевидно, LINQ to Entities не поддерживает параметризованную инициализацию, выдается исключение, которое говорит именно об этом: «В LINQ to Entities поддерживаются только конструкторы и инициализаторы без параметров». Мне было интересно, есть ли другой способ добиться того же результата?