Я хотел бы выполнить следующий SQL-запрос в Linq to SQL.
SELECT TOP dbo.SiteDept.SiteDeptId, dbo.Site.SiteName + ' / ' + dbo.Dept.DeptName AS SiteDeptName, dbo.SiteDept.SiteId, dbo.SiteDept.DeptId,
dbo.Dept.DeptName
FROM dbo.SiteDept INNER JOIN
dbo.Site ON dbo.SiteDept.SiteId = dbo.Site.SiteId INNER JOIN
dbo.Dept ON dbo.SiteDept.DeptId = dbo.Dept.DeptId
У меня есть контекст данных Linq to SQL как с сайтом, так и с объектом Dept, и с объектом SiteDept, который связывает отделы сместа.
Я также добавил в настраиваемое поле в частичном классе SiteDept для SiteDeptName.
Я думал что-то вроде следующего.
public IEnumerable<SiteDept> GetAllSiteDepts()
{
var dataContext = new AtomWebDataContext(_connectionString);
var allSiteDepts = from sd in dataContext.SiteDepts
join s in dataContext.Sites
on sd.SiteId equals s.SiteId
join d in dataContext.Depts
on sd.DeptId equals d.DeptId
select new SiteDept()
{
SiteDeptId = sd.SiteDeptId,
SiteId = sd.SiteId,
DeptId = sd.DeptId,
SiteDeptName = s.SiteName + "/" + d.DeptName
};
return allSiteDepts;
}
Однако я получаю «Явное построение типа объекта« GPSO.Repository.SiteDept »в запросе не разрешено».
Какой лучший способ добиться того, чего я хочу?