Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Какие есть варианты подстановки ip адреса в EF6?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34620
DbFirst
Генератор создал классы по edmx.
В классе конструктор с параметром
Class Ent : DbContext
...
: base("name=My")

Есть старый проект с 500 вызовами создания контекста.
Счас берется из конфига.
Как не меняя код проекта вызвать конструктор другой?
Править класс от генератора?
Наследник?
Кто как делает?

______________________________________________
"Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand.
27 мар 18, 10:36    [21288945]     Ответить | Цитировать Сообщить модератору
 Re: Какие есть варианты подстановки ip адреса в EF6?  [new]
hVostt
Member

Откуда:
Сообщений: 14744
Petro123,

DI
27 мар 18, 16:25    [21290586]     Ответить | Цитировать Сообщить модератору
 Re: Какие есть варианты подстановки ip адреса в EF6?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34620
hVostt
Petro123,
DI

Рановато мне).
Хочу руками пока.
Как?
Кстати, di ведь тоже потребует файл генерации править?
Ведь так?
27 мар 18, 17:17    [21290822]     Ответить | Цитировать Сообщить модератору
 Re: Какие есть варианты подстановки ip адреса в EF6?  [new]
hVostt
Member

Откуда:
Сообщений: 14744
Petro123
Рановато мне).
Хочу руками пока.
Как?
Кстати, di ведь тоже потребует файл генерации править?
Ведь так?


В конструкторе DbContext задаётся или имя коннекта из конфига, или строка соединения. Это один и тот же конструктор.

Хочешь выбирать какой конструктор вызывать во всех +100500 сервисов, тебе нужен DI.
27 мар 18, 18:09    [21291031]     Ответить | Цитировать Сообщить модератору
 Re: Какие есть варианты подстановки ip адреса в EF6?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34620
hVostt,
Смотри.
Мне достаточно вместо:
base("name=My")
Написать
base(getMyConnectString())
И все работает.
Конструктор сам всё разруливает.
Причем это написать один раз. Вызовы 500 раз не меняются.
Просто класс генерится и я не уверен что все так делают)
...
Если DI, то ведь будет то же самое почти.
27 мар 18, 18:41    [21291113]     Ответить | Цитировать Сообщить модератору
 Re: Какие есть варианты подстановки ip адреса в EF6?  [new]
hVostt
Member

Откуда:
Сообщений: 14744
Petro123
Если DI, то ведь будет то же самое почти.


С DI можно вызывать конкретный конструктор в зависимости от ситуации..
27 мар 18, 19:03    [21291140]     Ответить | Цитировать Сообщить модератору
 Re: Какие есть варианты подстановки ip адреса в EF6?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34620
Petro123
getMyConnectString()

Тоже может выдавать то строку коннекта, то имя параметра конфига.
Это надо поблагодарить разрабов генерируемых классов за перегруженные конструкторы.
..
Вариант с DI я понял. Оверхеда бы не было.
Пока раздумываю.
27 мар 18, 19:14    [21291163]     Ответить | Цитировать Сообщить модератору
 Re: Какие есть варианты подстановки ip адреса в EF6?  [new]
hVostt
Member

Откуда:
Сообщений: 14744
Petro123
Вариант с DI я понял. Оверхеда бы не было.
Пока раздумываю.


Ну самое главное конечно, это отсутствие +100500 using
27 мар 18, 19:15    [21291167]     Ответить | Цитировать Сообщить модератору
 Re: Какие есть варианты подстановки ip адреса в EF6?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34620
hVostt,
Да.
Но тут тоже странности.
То MS рекомендует один контекст на форму окно, то читаю что разрабы драйвера DevArt рекомендуют одно на приложение).
27 мар 18, 19:29    [21291197]     Ответить | Цитировать Сообщить модератору
 Re: Какие есть варианты подстановки ip адреса в EF6?  [new]
hVostt
Member

Откуда:
Сообщений: 14744
Petro123
То MS рекомендует один контекст на форму окно, то читаю что разрабы драйвера DevArt рекомендуют одно на приложение).


Контекст на единицу работы. Это хорошо укладывается в транзакционный lifetime scope.
27 мар 18, 19:40    [21291214]     Ответить | Цитировать Сообщить модератору
 Re: Какие есть варианты подстановки ip адреса в EF6?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34620
hVostt
Petro123
То MS рекомендует один контекст на форму окно, то читаю что разрабы драйвера DevArt рекомендуют одно на приложение).


Контекст на единицу работы. Это хорошо укладывается в транзакционный lifetime scope.

Да.
Если без di, то я решил проще.
Банально чтобы не писать 100500
using( var context...
Пишется один раз на форму:
Class A{
EntitiesMy context = new EntitiesMy();
А далее 500 раз context.where(...
В общем выбор есть. Смотрю варианты.
Ещё наследника вариант посмотрю.
28 мар 18, 10:06    [21292272]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить