我有一个普通的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中会抛出一个异常,提示:"只支持无参构造函数和初始化程序"。我想知道是否有其他方法可以实现同样的结果?