Entity Framework EF4.1 - хранимая процедура «не может быть найдена в контейнере»

У меня в базе данных есть СП. Для EF4.1 с использованием DbContext API .

После импорта функции из модели данных ссылки на хранимую процедуру отлично работают в моей среде разработки. Но при публикации на сервере происходит сбой с сообщением вроде: FunctionImport «SqlSearch» не может быть найден в контейнере «TallyJ2Entities». Все остальные данные работают нормально.

Похоже, что при производстве некоторые аспекты конфигурации EF4 забыты.

Базы данных идентичны, и оба сервера - SQL 2008 (локальный - Express SP1 10.50.2500, хост - Express RTM 10.50.1600).

Я даже указал редактору EDMX прямо на производственную базу данных и обновил. Результат работал нормально при разработке, но не работал на сервере.

Другие похожие вопросы здесь не помогают. У кого-то похожая проблема введите описание ссылки здесь .

Есть предложения?

Обновление: Я обнаружил, что проблема исчезает, когда я развертываю хост в режиме отладки!

Внутри моего класса, производного от DbContext, я поместил этот код:

((IObjectContextAdapter)this).ObjectContext.MetadataWorkspace
var findFunction = metadataWorkspace.GetItems(DataSpace.SSpace)
            .SelectMany(gi => gi.MetadataProperties)
            .Where(m=> Equals(m.Value, "SqlSearch"))
            .Select(m => "Found {0}".FilledWith(m.Value))
            .FirstOrDefault();

Когда я зарегистрировал результат findFunction , оказалось, что сервер (в режиме выпуска) НЕ нашел его, пока он находился в разработке, нашлось.

7
задан Community 23 May 2017 в 11:46
поделиться