Entity Framework: отключение EFCachingProvider для хранимых процедур - PullRequest
2 голосов
/ 19 августа 2011

EFCachingProvider выдает следующую ошибку при вызове хранимых процедур:

System.NotSupportedException: тип дерева команд System.Data.Common.CommandTrees.DbFunctionCommandTree не является поддерживается.

Но даже если вы создаете отдельный контекст и не устанавливаете для него Cache , ошибка все равно сохраняется.

В нашем ObjectContext есть следующий конструктор:

public ExtendedEntities(string connectionString, params string[] wrapperProviders)
    : base(EntityConnectionWrapperUtils.CreateEntityConnectionWithWrappers(connectionString, wrapperProviders))
{
}

Большинство запросов успешно выполняются с использованием следующего:

ExtendedEntities context = new ExtendedEntities(settings.EntitiesConnectionString, "EFTracingProvider", "EFCachingProvider"))
context.Cache = ...;
context.CachingPolicy = ...;

Вызовы хранимых процедур теперь используют:

new ExtendedEntities(settings.EntitiesConnectionString, "EFTracingProvider");

И все же проблема сохраняется?

1 Ответ

0 голосов
/ 22 августа 2012

Я думаю, вам следует рассмотреть возможность использования расширенной версии вашего класса Entities для вызова SP, поскольку оболочке не нравится структура команд команд SP.

В таком случае, как ваш, я делаю следующее:

используя контекст как New MyEntities

context.DoSomethingHERE()

конец использования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...