|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
|
Архитектура построения БД linq2db06.01.2021, 08:43. Показов 24592. Ответов 111
Добрый день!
У меня вот такая задача. Нужно создать БД CodeFirst на linq2db. (99% что это linq2db). Эту базу будет использовать более 10 мелких приложений. Как сделать правильно, чтобы методы выборки, создания таблици и т.д. были не конкретно в каждом приложении, а вынесены в стороннюю библиотеку? Чтобы при изменении таблицы или выборки, не приходилось менять это во всех 10 приложениях, а только в одном месте. Очень бы хотелось увидеть реальный пример использования. Где посмотреть уже готовые решения на основе linq2db? Не пример использования запросов из справки linq2db, а именно реальную архитектуру построения модели и контроллера. Буду очень благодарен за любую помощь!
0
|
|
| 06.01.2021, 08:43 | |
|
Ответы с готовыми решениями:
111
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников Как ускорить запрос Linq2db? |
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,944
|
||
| 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
|
||||||||||||
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,944
|
||||||||
| 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
|
|||||||
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,944
|
||||||
| 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
|
|
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,944
|
|
| 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,018
|
|
| 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,018
|
|
| 03.06.2021, 13:15 | |
|
0
|
|
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
||
| 03.06.2021, 13:25 [ТС] | ||
|
Повторяю ещё раз, там вопрос не про ОРМ.
0
|
||
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,944
|
|
| 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,018
|
||
| 04.06.2021, 14:01 | ||
Просто пока в проекте ОРМ, разговаривать о решении каких-то других проблем преждевременно - сначала надо избавиться от самого главного источника проблем.
0
|
||
| 04.06.2021, 14:28 | |
|
Не по теме: .. ну а что .. зачем эти орм, адаптеры-шмадаптеры ... в коде приложения генерируем запросы в виде скриптов, сохраняем в файл .sql ... а ответ сохраняем в файле CSV, который и читаем из кода ... чистенько и ортодоксально ... :)
0
|
|
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,944
|
|
| 04.06.2021, 18:00 | |
|
1
|
|
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,018
|
||
| 04.06.2021, 18:47 | ||
|
0
|
||
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,944
|
|
| 05.06.2021, 13:48 | |
|
Катафалк, повторяюсь: если вам нечего конкретного ответить, то и заходить сюда не зачем. Вашей болтологии вполне хватает в ветке "Обо всём". А тут конкретные вещи обсуждаются.
0
|
|
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,018
|
||
| 05.06.2021, 16:30 | ||
Пришлось таки ту ветку почитать. Ну что тут можно сказать - все верно, ОРМ и среда, ее породившая и поощряющая скакание по верхам вместо глубокого изучения в данном случае БД имеет самое прямое отношение к проблеме автора. Задача его решается элементарно на стороне БД, но он зачем то собирался выгружать данные на клиента Про триггеры, вероятно, впервые узнал
0
|
||
| 05.06.2021, 16:30 | |
|
Помогаю со студенческими работами здесь
100
Linq2db как изменить имя таблицы? Запрос linq2db c условием разницы времени
Как сохранить изменения сделанные в DataGridView в БД при использовании linq2db?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|