Как сделать левое внешнее соединение с таблицей linq и многими ко многим?
Когда я попытался сначала выполнить левое внешнее соединение с кодом MVC C#, я получил эту ошибку:
Неверный тип одного из выражений в предложении соединения. Ошибка вывода типа при вызове GroupJoin.
Мне нужна помощь, чтобы понять, почему предложение о соединении неверно. Вот код:
return (from t in context.Tenders
join c in context.Contacts on t.Contacts equals c.Tenders into leftOuter
from subpet in leftOuter.DefaultIfEmpty()
orderby t.id
where (c.Email == currentUserProfile.Email || c.UserProfileId == currentUserProfile.Id || t.UserProfileId == currentUserProfile.Id) && t.EndDate > now
&& t.IsClosed == false
&& t.IsCancel == false
select t).Union(
from t in context.Tenders
where t.EndDate > now
&& t.IsClosed == false
&& t.IsCancel == false
&& t.PrivacyLevelId == 1
select t).Count();
Свободный API:
// Many to many Tender => Contact
modelBuilder.Entity<Tender>()
.HasMany(c => c.Contacts)
.WithMany(t => t.Tenders)
.Map(m => m.MapLeftKey("TenderId")
.MapRightKey("ContactId")
.ToTable("ContactTender"));