У меня есть следующие классы:LINQ запрос с соединением с ICollection
public partial class Person : ModificationEntity
{
public Person()
{
this.PersonCompanies = new List<PersonCompany>();
}
public System.Guid PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public virtual ICollection<PersonCompany> PersonCompanies { get; set; }
}
public partial class PersonCompany : ModificationEntity
{
public System.Guid PersonCompanyId { get; set; }
public System.Guid PersonId { get; set; }
public System.Guid CompanyId { get; set; }
public virtual Company Company { get; set; }
public virtual Person Person { get; set; }
}
мне нужно запросить все пользователи, данные список companyids (Список lstCompanyIds).
Итак, я беру все PersonCompanyId с помощью следующего запроса:
var qpc = (from c in lstCompanyIds
join u in personCompanyService.GetPersonCompanies()
on c equals u.CompanyId
select u.PersonCompanyId).AsQueryable();
С помощью этого запроса, я хочу, чтобы получить пользователей:
var query = from q in GetUsers()
join q2 in qpc
on q.PersonCompanies.Select(y => y.PersonCompanyId) equals q2
select q;
Но это дает ошибку компиляции «Тип одно из выражений в предложении join неверно. Ошибка ввода типа в вызове 'Join'. " Очевидно, потому что я стараюсь сделать выбор в коллекцию personcompanies. Но как мне это сделать правильно? (Содержит не работает, потому что у меня есть две коллекции для сравнения ...)
Вы проверили этот вопрос и решение? : http://stackoverflow.com/questions/19184019/the-type-of-one-of-the-expressions-in-the-join-clause-is-incorrect-in-entity-fra –
Являются ли 'PersonCompanyId' и 'q2' того же типа (* System.Guid *)? – Loetn
@ BurakKarakuş Да, но не могу понять, как это может решить мою проблему. – JurgenStillaert