Присоединиться к хранимой процедуре с помощью Entity Framework - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть хранимая процедура, которая рекурсивно получает данные.Я сделал импорт функции в моем наборе сущностей.Я могу создать функцию в своем ObjectContext, которая выглядит следующим образом:

public ObjectResult<ProviderAccountSetting> GetProviderAccountSettings(long providerAccountId)
{
    string functionName = "MyContainer.GetProviderAccountSettings";
    ObjectParameter providerAccountIdParameter = new ObjectParameter("providerAccountId", providerAccountId);
    ObjectResult<ProviderAccountSetting> results = context.ExecuteFunction<ProviderAccountSetting>(functionName, providerAccountIdParameter);
    return results;
}

Однако я не могу выполнить соединение с LINQ без получения ошибки.Есть ли способ сказать Entity Framework использовать хранимую процедуру всякий раз, когда я получаю доступ к объекту?Я хотел бы, чтобы моя хранимая процедура использовалась в любое время Я получаю данные для этой сущности.Кроме того, я хочу, чтобы он работал с объединениями.Поддерживает ли Entity Framework этот тип отображения хранимых процедур в таблицы?Иначе, есть ли способ присоединиться к функции import?

1 Ответ

0 голосов
/ 14 декабря 2011

Ни одно из ваших требований невозможно.Вы не можете указать EF использовать хранимую процедуру каждый раз, когда вы запрашиваете данные.Вы должны вручную вызвать ваш GetProviderAccountSettings, чтобы вызвать хранимую процедуру.Вы также не можете использовать соединение (на стороне базы данных) при использовании хранимых процедур (это даже невозможно в SQL напрямую).Если вам нужно объединить какие-либо данные с результирующим набором вашей хранимой процедуры, это должно быть сделано непосредственно в процедуре и возвращено как результирующий набор.В противном случае вы должны выполнить хранимую процедуру и присоединенный запрос отдельно и объединить их в linq-to-objects.

...