gpt4 book ai didi

linq - 在 LINQ to Entities 中初始化强类型对象

转载 作者:行者123 更新时间:2023-12-02 11:53:11 24 4
gpt4 key购买 nike

我有一个普通的旧 CLR 对象,它本质上是两个 Entity Framework 对象的包装器,我这样做是为了可以将此包装器对象传递给 MVC 框架中的强类型 View 。我的 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 仅支持无参数构造函数和初始化程序。”我想知道是否还有另一种方法可以达到同样的结果?

最佳答案

如果您向 FooWrapper 添加无参数构造函数,然后使用对象初始化,如下所示:

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()
{
FooObject = f,
BarObject = b
});

return results;
}

关于linq - 在 LINQ to Entities 中初始化强类型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1440289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com