Я пытаюсь внешнее соединение таблицы с значной функции инлайн таблицы в моем запросе LINQ, но я получаю ошибку компиляции запроса во время выполнения:Entity Framework 5: Как внешнее соединение Таблица Ценится Функция
" Запрос попытался вызвать «OuterApply» по вложенному запросу, но «OuterApply» не имел соответствующих ключей ».
Мой LINQ заявление выглядит следующим образом:
var testQuery = (from accountBase in ViewContext.AccountBases
join advisorConcatRaw in ViewContext.UFN_AccountAdvisorsConcatenated_Get()
on accountBase.AccountId equals advisorConcatRaw.AccountId into advisorConcatOuter
from advisorConcat in advisorConcatOuter.DefaultIfEmpty()
select new
{
accountBase.AccountId,
advisorConcat.Advisors
}).ToList();
Определение функции выглядит следующим образом:
CREATE FUNCTION dbo.UFN_AccountAdvisorsConcatenated_Get()
RETURNS TABLE
AS
RETURN
SELECT AP.AccountId,
LEFT(AP.Advisors, LEN(AP.Advisors) - 1) AS Advisors
FROM ( SELECT DISTINCT
AP.AccountId,
( SELECT AP2.PropertyValue + ', '
FROM dbo.AccountProperty AP2 WITH (NOLOCK)
WHERE AP2.AccountId = AP.AccountId
AND AP2.AccountPropertyTypeId = 1 -- Advisor
FOR XML PATH('')) AS Advisors
FROM dbo.AccountProperty AP WITH (NOLOCK)) AP;
Я могу успешно выполнить объединение непосредственно в SQL следующим образом:
SELECT ab.accountid,
advisorConcat.Advisors
FROM accountbase ab
LEFT OUTER JOIN dbo.Ufn_accountadvisorsconcatenated_get() advisorConcat
ON ab.accountid = advisorConcat.accountid
У кого-нибудь есть рабочий пример левого внешнего соединения встроенного TVF в таблицу в LINQ для сущностей - или это известный дефект и т. Д.? Большое спасибо.
Имейте такую же проблему, любое решение? –
По-прежнему не реагирует на это от Microsoft - будет ли эта проблема исправлена в следующей версии EF? –