基本的に2つのエンティティフレームワークオブジェクトのラッパーであるプレーンオールド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;
}
明らかにLINQtoEntitiesはパラメーター化された初期化をサポートしていないため、これは機能しません。「LINQ to Entitiesでサポートされているのは、パラメーターのないコンストラクターと初期化子のみです」という例外がスローされます。これと同じ結果を達成する別の方法があるかどうか疑問に思いましたか?