У меня есть простой старый объект CLR, который, по сути, является оберткой для двух объектов инфраструктуры сущностей, я делаю это, чтобы передать этот объект-оболочку в строго типизированное представление в инфраструктуре MVC. Мой класс foo wrapper очень прост:
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 поддерживаются только беспараметрические конструкторы и инициализаторы». Мне было интересно, есть ли другой способ достичь этого же результата?