C# Linq“join”或“GroupJoin”未编译??“无法解析符号'GroupJoin'”
也许我的眼睛交叉了,因为我已经编码了一整天,但我决定使用linq表达式,它不编译关键字。。。注意,这在linqPad中起作用C# Linq“join”或“GroupJoin”未编译??“无法解析符号'GroupJoin'”,c#,linq,lambda,C#,Linq,Lambda,也许我的眼睛交叉了,因为我已经编码了一整天,但我决定使用linq表达式,它不编译关键字。。。注意,这在linqPad中起作用 using System.Linq; public IQueryable<CompanyPerson> PersonsFlattened() { var contacts = from person in Person
using System.Linq;
public IQueryable<CompanyPerson> PersonsFlattened()
{
var contacts = from person in Person
join companyPerson in CompanyPerson on person.Id equals companyPerson.PersonId into companyPersonGroups
from companyPerson in companyPersonGroups.DefaultIfEmpty()
select new
{
ContactPerson = person,
ContactCompany = companyPerson.Company
};
}
我也有同样的想法,有什么想法吗?我是不是遗漏了一些你必须要用到的表达方式?我遍历了对象资源管理器,但没有看到任何我尚未包含的内容。这是一个web api 2项目.net 4.5这是因为您提供的第一个参数是CompanyPerson类型,而不是值:
var contacts2 = Person.GroupJoin(companyPerson,
person => person.Id,
companyPerson => companyPerson.PersonId,
(person, companyPersonGroups) =>
new
{
person = person,
companyPersonGroups = companyPersonGroups
}
).SelectMany(
temp0 => temp0.companyPersonGroups.DefaultIfEmpty(),
(temp0, companyPerson) =>
new
{
ContactPerson = temp0.person,
ContactCompany = companyPerson.Company
}
);
解决了GroupJoin编译问题,由于某些原因,它无法使用var contact=xxx正确编译 我必须回复一个询问者
return _contextProvider.QueryAll<Person>().GroupJoin(...)...
这是最终的解决办法。左sql是否加入并获取人员,即使他们没有关联的公司
[HttpGet]
public IQueryable<Person> PersonsFlattened()
{
//return _contextProvider.QueryAll<Person>();
var contacts = from person in _contextProvider.QueryAll<Person>()
join companyPerson in CompanyPersons() on person.Id equals companyPerson.PersonId into companyPersonGroups
from companyPerson in companyPersonGroups.DefaultIfEmpty()
select new Person()
{
FirstName = person.FirstName,
LastName = person.LastName
};
return contacts;
}
我仍然在GroupJoin上遇到同样的问题,我应该提到在linqpad中查询工作得很好。无法解析“GroupJoin”Pheonixblade9,您关于我的公司人员的说法也是正确的,但这不是它不识别GroupJoin的原因
[HttpGet]
public IQueryable<Person> PersonsFlattened()
{
//return _contextProvider.QueryAll<Person>();
var contacts = from person in _contextProvider.QueryAll<Person>()
join companyPerson in CompanyPersons() on person.Id equals companyPerson.PersonId into companyPersonGroups
from companyPerson in companyPersonGroups.DefaultIfEmpty()
select new Person()
{
FirstName = person.FirstName,
LastName = person.LastName
};
return contacts;
}