170 похожих чатов

Да. Я как раз хочу понять, как правильно делать проект

репозитория? Убрать Базовый и наследников, и сделать для каждой сущности свой GRUD-репозиторий, тогда нафиг нужны интерфейсы для самих сущностей? А все вокруг говорят что надо от интерфейсов плясать. Убрать базовый - тогда если в БД 100500 таблиц, то будет 100500 классов сущностей, 100500 классов репозиториев и столько же моделей и мапперов? Как правильнее сделать, что бы через год потом разобраться что наделал, и последователи не прокляли разбирая после меня код?

6 ответов

15 просмотров

Должно быть какое-то наследование и переопределение Условно есть Get(int id) => return set.First(s => s.Id == id) И есть virtual set => context.Set<T>() И в репе тогда override set => base.set.Include("Something") Или ещё как-то, разные способы можно придумать В любом случае тебе придется в конкретных репах писать специфичные для сущности вещи

KondoR- Автор вопроса
Andrew Shurunov
Должно быть какое-то наследование и переопределени...

Получается что отложенную загрузку не удастся использовать путем объявления поля сущности как virtual?

Почему? Ничего не мешает тебе использовать отложенную загрузку, ты же просто обертку пишешь, как напишешь так и будет работать

KondoR- Автор вопроса
Andrew Shurunov
Почему? Ничего не мешает тебе использовать отложен...

Просто у меня с английским тяжело, пользовался переводчиком... Как я понял из документации, что если в классе сущности поле объявить как virtual, то что-бы получить связанные данные не придется использовать include(). А что бы мне воспользоваться этим полем с использованием интерфейсов в репозитории, то это поле мне надо прописать и в интерфейс. Но его как virtual в интерфейс не пропишешь...

KondoR- Автор вопроса

Просто из каждого громофона кричат что надо все начинать с интерфейсов... тогда вы сможете так и так, то и то. Ну соответственно: легче прикрутить, легче изменить...

KondoR
Просто из каждого громофона кричат что надо все на...

Интерфейсы по факту нужны чтобы при работе каждого со своей частью все работало. И были постоянные точки входа, с перечнем того что в них положить. Пока ты один всё пишешь, и никто кроме тебя не пользуется твоим кодом, то и без них можно.

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта