我正在尝试做这样的事情:
List<FundEntity> entities = this.tFunds
.Select(f => new FundEntity() {
ID = f.fundID,
Name = f.name,
CapitalCalls = f.tCapitalCalls
.Select(cc => new CapitalCall() {
ID = cc.capitalCallID,
Description = cc.description,
FundEntity = // Should be the newly created Fund Entity object
}).ToList()
}).ToList();
我希望每个Capitalcall对象都有一个返回其FundEntity的引用。如果不创建循环并手动设置每个循环,这是否可行?
答案 0 :(得分:7)
List<FundEntity> entities = this.tFunds
.Select(f =>
{
var parent = new FundEntity() {
ID = f.fundID,
Name = f.name,
};
parent.CapitalCalls = f.tCapitalCalls
.Select(cc => new CapitalCall() {
ID = cc.capitalCallID,
Description = cc.description,
FundEntity =parent // Should be the newly created Fund Entity object
});
return parent;
}.ToList()
).ToList();
那应该给你参考。
答案 1 :(得分:2)
这个LINQ是内存还是LINQ to Entities / SQL?
在第一种情况下,您可以创建实体,然后强制设置其CapitalCalls
属性(如Stephan中的示例所示)
在第二种情况下,我担心在LINQ查询中无法执行此操作(因为您无法引用正在创建的对象,但您不能使用多个声明,因为翻译不支持)。但是,您可以轻松修改数据库或实体模型以包含所需的引用...