SelectMany 应用于 3 个列表
SelectMany applied to 3 lists
我需要创建对象列表 OrganizationEnrolment,使用 3 Entity Framework 个实体(用户、EnrolmentType 和 OrganizationEnrolment)创建:
List<OrganizationEnrolment> organizationEnrolments =
context.Organizations
.SelectMany(x => context.Users)
.SelectMany(x => context.EnrolmentTypes)
.Select(y => new OrganizationEnrolment {
EnrolmentType = enrolmentType
Organization = organization,
User = user
})
我的问题是在 SelectMany 之后如何从加入的 3 个中获取注册类型、组织和用户 table?注意下面的代码:
EnrolmentType = enrolmentType,
Organization = organization,
User = user
无法正常工作,因为我没有变量 enrolmentType、organization 和 user。
您可以使用查询语法来获取所有这些变量:
from o in context.Organizations
from u in context.Users
from et in context.EnrolmentTypes
select new OrganizationEnrolment {
EnrolmentType = et
Organization = o,
User = u
}
每个 本地范围 变量将在 select 语句中可见。
Lambda 语法(使用 EF6 检查):
context.Organizations.SelectMany(
o => context.Users.SelectMany(
u => context.EnrolmentTypes.Select(
et => new OrganizationEnrolment {
EnrolmentType = et
Organization = o,
User = u
})
)
)
这是您要找的吗?
var query= from o in context.Organizations
from u in context.Users
from t incontext.EnrolmentTypes
select new OrganizationEnrolment {
EnrolmentType = t,
Organization = o,
User = u
};
使用方法语法为:
var query= context.Organizations.SelectMany(o=>context.EnrolmentTypes
.SelectMany(t=>context.Users
.Select(u=>new OrganizationEnrolment {
EnrolmentType = t,
Organization = o,
User = u
})));
我需要创建对象列表 OrganizationEnrolment,使用 3 Entity Framework 个实体(用户、EnrolmentType 和 OrganizationEnrolment)创建:
List<OrganizationEnrolment> organizationEnrolments =
context.Organizations
.SelectMany(x => context.Users)
.SelectMany(x => context.EnrolmentTypes)
.Select(y => new OrganizationEnrolment {
EnrolmentType = enrolmentType
Organization = organization,
User = user
})
我的问题是在 SelectMany 之后如何从加入的 3 个中获取注册类型、组织和用户 table?注意下面的代码:
EnrolmentType = enrolmentType,
Organization = organization,
User = user
无法正常工作,因为我没有变量 enrolmentType、organization 和 user。
您可以使用查询语法来获取所有这些变量:
from o in context.Organizations
from u in context.Users
from et in context.EnrolmentTypes
select new OrganizationEnrolment {
EnrolmentType = et
Organization = o,
User = u
}
每个 本地范围 变量将在 select 语句中可见。
Lambda 语法(使用 EF6 检查):
context.Organizations.SelectMany(
o => context.Users.SelectMany(
u => context.EnrolmentTypes.Select(
et => new OrganizationEnrolment {
EnrolmentType = et
Organization = o,
User = u
})
)
)
这是您要找的吗?
var query= from o in context.Organizations
from u in context.Users
from t incontext.EnrolmentTypes
select new OrganizationEnrolment {
EnrolmentType = t,
Organization = o,
User = u
};
使用方法语法为:
var query= context.Organizations.SelectMany(o=>context.EnrolmentTypes
.SelectMany(t=>context.Users
.Select(u=>new OrganizationEnrolment {
EnrolmentType = t,
Organization = o,
User = u
})));