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