Как использовать динамические данные asp.net с Entity Framework в другой DLL - PullRequest
3 голосов
/ 13 января 2009

Как я могу использовать динамические данные asp.net, используя EF в другой DLL, и я не хочу помещать строку подключения в web.config или любой файл конфигурации. У меня есть этот код в Global.asax

model.RegisterContext (() => new MyObjectContext ("entityconnectionString"), new ContextConfiguration () {ScaffoldAllTables = true});

страница defalut в порядке, но когда я нажимаю на любую таблицу, чтобы увидеть детали, я получаю эту ошибку: Указанное именованное соединение либо не найдено в конфигурации, не предназначено для использования с поставщиком EntityClient, либо недопустимо. Как я могу решить эту проблему?

Ответы [ 3 ]

6 голосов
/ 10 февраля 2011

Мне удалось решить эту проблему путем принудительной загрузки MetadataWorkspace и использования перегрузки RegisterContext ().

var context = new MyEntities();   // DataContext
context.MetadataWorkspace.LoadFromAssembly(typeof(MyEntity).Assembly); //  An EF Entity 
var config = new ContextConfiguration() {ScaffoldAllTables = true};
DefaultModel.RegisterContext(() => context, config);
1 голос
/ 07 июня 2010

У меня такая же проблема. У меня есть файл модели данных EDMX в одном проекте под названием NW.DataModel. Я добавил элемент генерации кода для объектов POCO, который затем переместил в отдельный проект под названием NW.Entities, чтобы они могли оставаться невежественными. Мне нужно настроить несколько параметров свойств для генерации пространства имен в объекте Context, чтобы Context распознавал сущности при построении решения. Все было хорошо, и я могу использовать эти проекты в консольных приложениях и службе WCFdata. Теперь я хочу добавить динамический сайт данных для некоторого базового администратора, и именно тогда отдельные сборки больше не играют вместе. Я просто тестирую настройки проекта с базой данных Northwind.

Я получаю эту ошибку: Не удалось найти тип CLR для 'NWEntities.Shipper'.

В этом сообщении блога, похоже, есть некоторые идеи и ссылки на форумы, где проблема имеет какое-то недавнее действие, но пока ни слова от Microsoft.

http://thedatafarm.com/blog/data-access/wcf-data-services-and-ef-pocos-that-are-in-their-own-assembly/

0 голосов
/ 04 мая 2012

Ответ Джеффа почти работает для меня, но я продолжал получать ObjectDisposed Исключения время от времени.

Я изменил фабрику контекста, чтобы создать новый контекст, который, кажется, работает:

var config = new ContextConfiguration() { ScaffoldAllTables = true };
DefaultModel.RegisterContext(() => 
    {   
        var context = new MyEntities();   // ObjectContext 
        context.MetadataWorkspace.LoadFromAssembly(typeof(AnyPOCOInOtherAssembly).Assembly);
        return context;
    }, 
config); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...