|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
|
Архитектура построения БД linq2db06.01.2021, 08:43. Показов 25711. Ответов 111
Добрый день!
У меня вот такая задача. Нужно создать БД CodeFirst на linq2db. (99% что это linq2db). Эту базу будет использовать более 10 мелких приложений. Как сделать правильно, чтобы методы выборки, создания таблици и т.д. были не конкретно в каждом приложении, а вынесены в стороннюю библиотеку? Чтобы при изменении таблицы или выборки, не приходилось менять это во всех 10 приложениях, а только в одном месте. Очень бы хотелось увидеть реальный пример использования. Где посмотреть уже готовые решения на основе linq2db? Не пример использования запросов из справки linq2db, а именно реальную архитектуру построения модели и контроллера. Буду очень благодарен за любую помощь!
0
|
|
| 06.01.2021, 08:43 | |
|
Ответы с готовыми решениями:
111
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников Как ускорить запрос Linq2db? |
|
14731 / 9505 / 1363
Регистрация: 21.01.2016
Сообщений: 35,857
|
||
| 19.03.2021, 10:27 | ||
|
Вопрос с открытым подключением касается не только каких-то там тайм-аутов со стороны СУБД, но и транзакций. Особенно в лице TransactionScope. Почитайте об этом. Этот момент не относится к ORM, он из ADO.NET самого исходит.
1
|
||
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
||||||||||||
| 19.03.2021, 13:00 [ТС] | ||||||||||||
|
Что-то я запутался совсем.
Как можно позже открывать соединение, и как можно раньше закрывать. А как быть с паттерном (или антипаттерном) Repository? Вот даже у ms https://docs.microsoft.com/en-... pplication При создании объекта в него передаётся экземпляр созданного подключения. И потом оно (подключение) используется в приложении. Вот и у меня по такому типу сделан generic repository. Я создаю объект REPO в начале метода, а потом ещё несколько раз обращаюсь к этому REPO. Если использовать using, то создавать объект REPO придётся несколько раз внутри одного метода. Это же не нормально? Для сравнения создание одного REPO
А если с использованием using
А если каждый отдельно, то это уже 4 создания using и как следствие 4 создания REPO. Выносить каждый запрос в отдельный метод? Добавлено через 1 час 24 минуты
0
|
||||||||||||
|
14731 / 9505 / 1363
Регистрация: 21.01.2016
Сообщений: 35,857
|
||||||||
| 19.03.2021, 13:24 | ||||||||
|
В вашем случае можно немного всё упростить. Просо заведите класс DataService (или аналогичным образом названный) с методом GetRepository<T>, где T - одна из сущностей контекста. Этот класс будет реализовывать IDisposable и будет служить обёрткой вокруг контекста, который будет передаваться всем запрошенным репозиториям. В таком случае вы можете оперировать интерфейсом или абстрактным классом репозитория и даже не видеть (вне репозитория) Linq2Db. А в случае с таким подходом:
Либо вообще уберите репозитории и работайте с контекстом напрямую. Либо сокройте все детали работы с ORM (и вообще сам факт его существования) в DataService и репозитории.
1
|
||||||||
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
|||||||
| 19.03.2021, 14:54 [ТС] | |||||||
0
|
|||||||
|
14731 / 9505 / 1363
Регистрация: 21.01.2016
Сообщений: 35,857
|
||||||
| 20.03.2021, 11:58 | ||||||
|
BeginnerCoderCS,
1
|
||||||
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
|
| 20.03.2021, 12:55 [ТС] | |
|
Usaga, db?.Close(); не нужен? Только db.Dispose()?
0
|
|
|
14731 / 9505 / 1363
Регистрация: 21.01.2016
Сообщений: 35,857
|
|
| 20.03.2021, 13:39 | |
|
BeginnerCoderCS, да.
1
|
|
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
|
| 03.06.2021, 09:04 [ТС] | |
|
Usaga, Элд Хасп, не стал писать сюда вопрос так как вопрос выходит за рамки построения архитектуры, но там используется linq2db, так что может подскажете?
![]() https://www.cyberforum.ru/ado-... 42736.html
0
|
|
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
|
| 03.06.2021, 11:57 | |
0
|
|
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
||
| 03.06.2021, 12:00 [ТС] | ||
|
Там то дело и не в ОРМ. Перейдите в ветку и составьте SQL запрос. Чтобы без ОРМ.
0
|
||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
|
| 03.06.2021, 13:15 | |
|
0
|
|
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
||
| 03.06.2021, 13:25 [ТС] | ||
|
Повторяю ещё раз, там вопрос не про ОРМ.
0
|
||
|
14731 / 9505 / 1363
Регистрация: 21.01.2016
Сообщений: 35,857
|
|
| 04.06.2021, 05:57 | |
|
1
|
|
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
|||
| 04.06.2021, 10:29 [ТС] | |||
0
|
|||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
||
| 04.06.2021, 14:01 | ||
Просто пока в проекте ОРМ, разговаривать о решении каких-то других проблем преждевременно - сначала надо избавиться от самого главного источника проблем.
0
|
||
| 04.06.2021, 14:28 | |
|
Не по теме: .. ну а что .. зачем эти орм, адаптеры-шмадаптеры ... в коде приложения генерируем запросы в виде скриптов, сохраняем в файл .sql ... а ответ сохраняем в файле CSV, который и читаем из кода ... чистенько и ортодоксально ... :)
0
|
|
|
14731 / 9505 / 1363
Регистрация: 21.01.2016
Сообщений: 35,857
|
|
| 04.06.2021, 18:00 | |
|
1
|
|
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
||
| 04.06.2021, 18:47 | ||
|
0
|
||
|
14731 / 9505 / 1363
Регистрация: 21.01.2016
Сообщений: 35,857
|
|
| 05.06.2021, 13:48 | |
|
Катафалк, повторяюсь: если вам нечего конкретного ответить, то и заходить сюда не зачем. Вашей болтологии вполне хватает в ветке "Обо всём". А тут конкретные вещи обсуждаются.
0
|
|
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
||
| 05.06.2021, 16:30 | ||
Пришлось таки ту ветку почитать. Ну что тут можно сказать - все верно, ОРМ и среда, ее породившая и поощряющая скакание по верхам вместо глубокого изучения в данном случае БД имеет самое прямое отношение к проблеме автора. Задача его решается элементарно на стороне БД, но он зачем то собирался выгружать данные на клиента Про триггеры, вероятно, впервые узнал
0
|
||
| 05.06.2021, 16:30 | |
|
Linq2db как изменить имя таблицы? Запрос linq2db c условием разницы времени
Как сохранить изменения сделанные в DataGridView в БД при использовании linq2db?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|