Я использую Linq to Entities.
У меня есть следующий запрос в моем коде, он включает в себя левое внешнее соединение:
var surgeonList = (from item in context.T1_STM_Surgeon.Include("T1_STM_SurgeonTitle")
.Include("OTER").Include("OSLP")
join reptable in context.OSLP on item.Rep equals reptable.SlpCode into surgRepresentative
where item.ID == surgeonId
select new
{
ID = item.ID,
First = item.First,
Last = item.Last,
Rep = (surgRepresentative.FirstOrDefault() != null) ? surgRepresentative.FirstOrDefault().SlpName : "N/A",
Reg = item.OTER.descript,
PrimClinic = item.T1_STM_ClinicalCenter.Name,
Titles = item.T1_STM_SurgeonTitle,
Phone = item.Phone,
Email = item.Email,
Address1 = item.Address1,
Address2 = item.Address2,
City = item.City,
State = item.State,
Zip = item.Zip,
Comments = item.Comments,
Active = item.Active,
DateEntered = item.DateEntered
})
.ToList();
Мой DEV сервер имеет SQL 2008, поэтому код работает просто отлично.
Когда я переместил этот код на производственный сервер клиента - он использует SQL 2000, я начал получать «Неверный синтаксис рядом с» («».
Я попытался изменить ProviderManifestToken на 2000 в моем файле .edmx, затем я начал получать «Для выполнения этого запроса требуется оператор APPLY, который не поддерживается в версиях SQL Server ранее, чем SQL Server 2005». Я привязал смену токена на 2005, «Неверный синтаксис рядом с» («» вернулся.
Может кто-нибудь помочь мне найти обходной путь для этого?
Большое спасибо заранее!