Mam zwykły stary obiekt CLR, który jest w zasadzie otoką dla dwóch obiektów struktury encji, robię to, więc mogę przekazać ten obiekt opakowania do mocno wpisanego widoku w strukturze MVC . Moja klasa foo wrapper jest bardzo prosta:Inicjowanie mocno wpisanych obiektów w LINQ do encji
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; }
}
Co mam tak daleko do mojej funkcji ListFoosWithBars jest następujący:
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;
}
To nie działa, ponieważ ewidentnie LINQ do podmioty nie obsługuje sparametryzowanego inicjalizacja, generowany jest wyjątek, który mówi tylko, że: "Tylko konstruktory i inicjatory bez parametrów są obsługiwane w LINQ do encji." Zastanawiałem się, czy istnieje inny sposób osiągnięcia tego samego wyniku?
Gdyby to samo zostało napisane, wygrywasz. – AdamSane
Doskonale, dziękuję! –