我有一个普通的旧 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 仅支持无参数的构造函数和初始化程序。” 我想知道是否有另一种方法可以达到同样的效果?