Я хочу сгруппировать список, чтобы избежать повторяющихся записей на экране
Я хочу иметь внутреннее объединение с SiteToEmp, которое необходимо залить, поскольку у меня есть метод IQueryable, который возвращает список из базы данных другой таблицы (SiteToEmp)иметь отношение, которое может записывать более одной записи для одного и того же внешнего ключа (SiteID), когда я делаю связь, мне нужно использовать группировку по первичному ключу, который не может преобразовать
protected override IQueryable<SiteViewModel> BuildQuery(byte tab, byte? range, DateTime? start, DateTime? end, string role)
{
var source = typeof(Site).Name;
if (range != null && range != 10 && range != 0)
RequestUtil.RequestRangeFilter(UnitOfWork, range.Value, Parms.CompanyId, out start, out end);
var query =
(from site in UnitOfWork.SiteRepository.GetAll()
join lookup in UnitOfWork.LookUpRepository.Find(l => l.CodeName == "Sitetype")
on site.SiteType equals lookup.CodeId into ldg
from lookup in ldg.DefaultIfEmpty()
join lookuptitle in UnitOfWork.LookUpTitlesRepository.Find(l =>
l.CodeName == "Sitetype" && l.Culture == Parms.Language)
on site.SiteType equals lookuptitle.CodeId into ltdg
from lookuptitle in ltdg.DefaultIfEmpty()
join district in UnitOfWork.DistrictRepository.GetAll()
on site.DistrictId equals district.Id into g2
from district in g2.DefaultIfEmpty()
join city in UnitOfWork.CityRepository.GetAll()
on site.CityId equals city.Id into g3
from city in g3.DefaultIfEmpty()
join country in UnitOfWork.CountryRepository.GetAll()
on site.CountryId equals country.Id into g4
from country in g4.DefaultIfEmpty()
join siteToEmp in UnitOfWork.SiteToEmployeesRepository.GetAll()
on site.Id equals siteToEmp.SiteId into g
from siteToEmp in g.DefaultIfEmpty()
join employee in UnitOfWork.EmployeeViewRepository.GetEmployeesByCompanyId(Parms.CompanyId,
Parms.Language)
on siteToEmp.EmpId equals employee.EmpId into g1
from employee in g1.DefaultIfEmpty()
select new SiteViewModel
{
Id = site.Id,
Code = site.Code,
Name = site.Name,
LocalName = site.Name,
TimeZone = site.TimeZone,
Latitude = site.Latitude,
Longitude = site.Longitude,
Address = site.Address1,
City = city.Name,
District = district.Name,
Country = country.Name,
SiteTypeName = (lookuptitle == null ? lookup.Name : lookuptitle.Title),
SiteToEmployeesList = employee.EmpName,
ContactPerson = site.ContactPerson,
Email = site.Email,
Mobile = site.Telephone
});//.GroupBy(k => k.Id).ToList();
//var results = query.GroupBy(x => x.Id).ToList();
return query;
}
Невозможно неявно преобразовать тип System.Linq.IQueryable для 'System.Linq.IQueryable' Существует явное преобразование