【发布时间】:2014-05-19 17:58:33
【问题描述】:
我有一个 LINQ 查询,我试图从 2 个表中返回数据,但我加入的表是有条件的。
这是我想做的:
if (teamType == "A"){
var query = from foo in context.People
join foo2 in context.PeopleExtendedInfoA
select foo;
}
else {
var query = from foo in context.People
join foo2 in context.PeopleExtendedInfoB
select foo;
}
稍后我将进一步过滤查询。我显然无法以这种方式设置它,因为我将无法访问 if 块之外的“查询”,但它显示了我正在尝试做的事情。这是我稍后尝试对查询执行的操作的示例:
if (state != null)
{
query = query.Where(p => p.State == state);
}
if (query != null) {
var queryFinal = from foo in query
select new PeopleGrid()
{
Name = foo.Name,
Address = foo.Address,
Hobby = foo2.Hobby
}
}
我要返回的是表 foo 中的所有数据,然后是连接表中的一个字段,但根据逻辑,连接表会有所不同。 PeopleExtendedInfoA 和 PeopleExtendedInfoB 都具有列“爱好”,但我无法从连接表中访问“爱好”,这是我需要从连接表中获取的唯一字段。
我该怎么做呢?
【问题讨论】:
标签: c# linq join linq-to-entities