2012-03-15 3 views
2

Я начинаю с приложения MVC3, используя EF. У нас есть база данных с> 200 таблицами. Я использую метод DBFirst.То же соединение для разных моделей EntityFramework?

Моя идея состояла в том, чтобы создать EFModel для разных областей приложения, вместо того чтобы получить всю схему db в одну большую модель. Я столкнулся с проблемой, когда каждая модель, похоже, хочет иметь собственную строку соединения. Мне не удалось изменить только одну общую строку connestion. Разве это не возможно? Я думаю, что это тот же самый дБ в фоновом режиме, поэтому ...

Или я полностью здесь? Должен ли я перетащить все таблицы в одну большую модель? Или согласиться с тем, что я получу много соединительной строки?

Любые идеи?

ответ

1

У вас не может быть одной строки подключения EF для нескольких моделей EDMX, поскольку EDMX metadata is part of the EF connection string.

Это не должно быть проблемой для вас, за исключением того, что все эти строки подключения содержат встроенную строку подключения DB, и вы можете изменить ее в одном месте вместо 5. Вы можете указать , однако часть строки соединения DB во время выполнения с использованием EntityConnectionStringBuilder. Таким образом, у вас может быть строка «обычного» (не-EF) соединения для БД, а затем использовать EntityConnectionStringBuilder для ее замены в строки соединения EF при создании контекста.

Off верхней части моей головы, код будет выглядеть примерно так:

var dbCS = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString; 
var model1CS = ConfigurationManager.ConnectionStrings["Model1ConnectionString"].ConnectionString; 
var ecsb = new EntityConnectionStringBuilder(model1CS); 
ecsb.ProviderConnectionString = dbCS; 

return new Model1Entities(ecsb.ToString()); 
0

Возможно, вам необходимо создать базовый контекст, где вы можете жестко указать строку подключения или ее имя в web.config. Контекстные родители могут иметь только часть al db и даже описывать некоторые общие сущности в родительском контексте, которые вы должны использовать их у каждого ребенка.

0

Почему вы должны использовать Entity Framework? Возможно, EF не подходит для вас.

Я рекомендую использовать другие ОРМ, например Simple.Data.

Смежные вопросы