Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Создание таблиц EF CF - что необходимо? / 25 сообщений из 34, страница 1 из 2
27.04.2018, 12:11
    #39637323
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Ну как-то сложилось, что создаём в унаследованном от DbContext классе поля DbSet<Entity> - генерим/накатываем миграции - и готово.

Вопрос #1
Обязательно проходить через указание DbSet<Entity> ? В какой-то момент мне показалось, что достаточно, что бы явно замапленный класс ссылался на "дополнительный" и таблица в EF для дополнительного создатся сама.

Это глюк?

Вопрос #2
Смотрю в базу, CF, там полно таблиц, но через DbSet<Entity> задано вообще всего ничего (три сущности).
Что за прием такой, позволяющий такое?
...
Рейтинг: 0 / 0
27.04.2018, 12:11
    #39637325
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Я всегда думал, что динамическое добавление таблиц (не сущностей) - это не про EF вообще.
...
Рейтинг: 0 / 0
27.04.2018, 12:13
    #39637329
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
По крайней мере EF Core автоматически создает таблицы для всех связанных сущностей. Поэтому, если нет "StandAlone" таблиц, достаточно создать только один DbSet<Entity>, остальные подтягиваются по цепочке.
...
Рейтинг: 0 / 0
27.04.2018, 12:14
    #39637333
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Чем отличается первый вопрос от второго? )))
...
Рейтинг: 0 / 0
27.04.2018, 12:25
    #39637342
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Агнец за бортомявно замапленный класс ссылался на "дополнительный" ичто за термин дополнительный?
Есть классы и отношения между ними.
...
Рейтинг: 0 / 0
27.04.2018, 12:40
    #39637354
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Агнец за бортомВопрос #1
Обязательно проходить через указание DbSet<Entity> ? В какой-то момент мне показалось, что достаточно, что бы явно замапленный класс ссылался на "дополнительный" и таблица в EF для дополнительного создатся сама.

Нет, не просто не обязательно, нафиг не нужно. Используй профили.


Агнец за бортомВопрос #2
Смотрю в базу, CF, там полно таблиц, но через DbSet<Entity> задано вообще всего ничего (три сущности).
Что за прием такой, позволяющий такое?

Профили, либо динамическая регистрация.
...
Рейтинг: 0 / 0
27.04.2018, 12:41
    #39637358
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Агнец за бортомЯ всегда думал, что динамическое добавление таблиц (не сущностей) - это не про EF вообще.

Непонятно, что за динамическое добавление таблиц? EF работает с конкретной моделью, которая билдится на старте. Если модель меняется, никто не мешает перебилдить контекст. Но это лишнее, так как EF для динамики в рантайме плохо заточен, точнее никак.
...
Рейтинг: 0 / 0
27.04.2018, 12:54
    #39637375
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Shocker.ProЧем отличается первый вопрос от второго? )))

Там явно не от корневой сущности всё тянется.
...
Рейтинг: 0 / 0
27.04.2018, 12:54
    #39637378
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Shocker.ProПо крайней мере EF Core

Я про "простой". 6.0.0.0
...
Рейтинг: 0 / 0
27.04.2018, 12:56
    #39637380
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
hVosttПрофили, либо динамическая регистрация.

Про профили я поищу, а как выглядит "динамическая" регистрация? Это что - можно без миграций?

Как в монге? o_O
...
Рейтинг: 0 / 0
27.04.2018, 13:02
    #39637389
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Агнец за бортомТам явно не от корневой сущности всё тянется.так пофиг, все равно пройдет по всему графу
...
Рейтинг: 0 / 0
27.04.2018, 13:05
    #39637395
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Агнец за бортомПро профили я поищу, а как выглядит "динамическая" регистрация? Это что - можно без миграций?

Как в монге? o_O

Не.. динамическая регистрация, это значит при запуске поковыряться в ассембли, поискать классы профилей и зарегистрировать их. При подключении новых ассембли, они будут добавляться в контекст со своими таблицами. Это не рантайм динамика :)
...
Рейтинг: 0 / 0
27.04.2018, 13:21
    #39637417
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
hVosttАгнец за бортомПро профили я поищу, а как выглядит "динамическая" регистрация? Это что - можно без миграций?

Как в монге? o_O

Не.. динамическая регистрация, это значит при запуске поковыряться в ассембли, поискать классы профилей и зарегистрировать их. При подключении новых ассембли, они будут добавляться в контекст со своими таблицами. Это не рантайм динамика :)т.е. это типа добавили Плагн_Б и кусок БД зарегили допонительно.
IMHO нафиг не надо.
...
Рейтинг: 0 / 0
27.04.2018, 13:38
    #39637433
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Petro123т.е. это типа добавили Плагн_Б и кусок БД зарегили допонительно.
IMHO нафиг не надо.

у нас на проектах где EF пользуется всё из сборок регается. ну дженерики, репо на дженериках, лабараторная классика.
...
Рейтинг: 0 / 0
27.04.2018, 13:43
    #39637440
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
hVostt,
У вас нестандарт. У вас CQRS)).
...
Рейтинг: 0 / 0
27.04.2018, 14:32
    #39637497
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
hVosttпоискать классы профилей и зарегистрировать их.

Не понимаю, "профили EF" - предлагают посмотреть на запросы EF.

О каких профилях ты говоришь?

И что значит - зарегестрировать? В какой момент создаются таблицы? Что с миграциями происходит?

Это всё при запуске?
...
Рейтинг: 0 / 0
27.04.2018, 15:48
    #39637568
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Агнец за бортомО каких профилях ты говоришь?

И что значит - зарегестрировать? В какой момент создаются таблицы? Что с миграциями происходит?

Это всё при запуске?

http://anthonygiretti.com/2018/01/11/entity-framework-core-2-entity-type-configuration/

для каждой ентити, например, Product создаёшь класс IEntityTypeConfiguration<Product> (можно вложенным классом прям в Product), затем находишь все классы наследники IEntityTypeConfiguration<> и регистрируешь их в OnModelCreating. таким образом ты отделяешь мух от котлет и DbContext у тебя чистенький.
...
Рейтинг: 0 / 0
27.04.2018, 16:01
    #39637574
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
hVosttтаким образом ты отделяешь мух от котлет и DbContext у тебя чистенький.

Нефига се - отделяешь. Уже POCO - недостаточное отделение?

И как по мне - наследоваться от "не-пойми-чего" - это уже никакое не отделение.

База меняется при каждом перезупуске?

За ссылку - спасибо.
...
Рейтинг: 0 / 0
27.04.2018, 16:02
    #39637576
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Так эта фича только на второй корке?
...
Рейтинг: 0 / 0
27.04.2018, 16:08
    #39637580
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
hVostt,

Раньше указывали в одном месте - теперь в другом. В чем профит?
...
Рейтинг: 0 / 0
27.04.2018, 16:18
    #39637590
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Агнец за бортомРаньше указывали в одном месте - теперь в другом. В чем профит?связность меньше, как я понимаю
...
Рейтинг: 0 / 0
27.04.2018, 16:19
    #39637591
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Вообще, с тем же успехом можно просто реализовать у класса сущности какой-нить пустой интерфейс
...
Рейтинг: 0 / 0
27.04.2018, 16:35
    #39637600
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Shocker.ProВообще, с тем же успехом можно просто реализовать у класса сущности какой-нить пустой интерфейс

Чтобы потом в рантайме обработать его по этому признаку?
...
Рейтинг: 0 / 0
27.04.2018, 16:37
    #39637602
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
ну да, по аналогииhVosttзатем находишь все классы наследники IEntityTypeConfiguration<> и регистрируешь их в OnModelCreatingЭто если не нужны какие-то дополнительные настройки
...
Рейтинг: 0 / 0
27.04.2018, 16:40
    #39637604
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание таблиц EF CF - что необходимо?
Агнец за бортомhVostt,

Раньше указывали в одном месте - теперь в другом. В чем профит?
В чем разница buttons в xaml или в коде:
b = Buttons.Create();
b.Left = 0;
b.Top = 0;
)))
Вот у них второй вариант.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Создание таблиц EF CF - что необходимо? / 25 сообщений из 34, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]