|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
|
Архитектура построения БД linq2db06.01.2021, 08:43. Показов 25733. Ответов 111
Добрый день!
У меня вот такая задача. Нужно создать БД CodeFirst на linq2db. (99% что это linq2db). Эту базу будет использовать более 10 мелких приложений. Как сделать правильно, чтобы методы выборки, создания таблици и т.д. были не конкретно в каждом приложении, а вынесены в стороннюю библиотеку? Чтобы при изменении таблицы или выборки, не приходилось менять это во всех 10 приложениях, а только в одном месте. Очень бы хотелось увидеть реальный пример использования. Где посмотреть уже готовые решения на основе linq2db? Не пример использования запросов из справки linq2db, а именно реальную архитектуру построения модели и контроллера. Буду очень благодарен за любую помощь!
0
|
|
| 06.01.2021, 08:43 | |
|
Ответы с готовыми решениями:
111
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников Как ускорить запрос Linq2db? |
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
||||||||||||||||||||||
| 09.01.2021, 10:50 [ТС] | ||||||||||||||||||||||
|
Добавил связь и в Country
А linq2db может добавлять вот такую запись? Хочу я добавить `Город` в `City` по стране `СтарныНет` которой ещё нет в таблице `Country`? Что-то типа
Или как лучше такое добавление производить? Чтобы не отдельным запросом к Country с проверкой. С добавлением foreign key и без использования ALTER TABLE? CreateTable
Скорее всего неправильно как-то читаю. Может из-за английского, а может из-за того что я тугодум. Но читаю. В коде нашёл [Association] и решил пошагово посмотреть как это работает. Но не тут то было. Из-за недостаточности знаний, не смог запустить тесты.
0
|
||||||||||||||||||||||
|
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,915
|
|||||
| 09.01.2021, 11:01 | |||||
|
1
|
|||||
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
||||||
| 09.01.2021, 18:16 [ТС] | ||||||
|
Ещё вот такой вопрос.
Есть модель DB. А так же есть модель объектов API сервиса. Частично данные из API сохраняются в базу. И естествнно много классов в модели DB и API с одинаковыми именами. И не пару классов, а много одинаковых имён. Как лучше поступить в этом случае? Что мне приходит на ум. 1. Добавить префикс/постфикс к одной модели. Допустим модель апи сервиса Country, City, User. А модель базы данных CountryDB, CityDB, UserDB. 2. Использовать алиасы для namespace.
И какие подводные камни могут быть?
0
|
||||||
|
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,915
|
||
| 10.01.2021, 10:19 | ||
|
1
|
||
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
|||||||
| 10.01.2021, 14:23 [ТС] | |||||||
|
Как тогда лучше делать? Вот так по-моему не очень красиво
0
|
|||||||
|
4695 / 2702 / 735
Регистрация: 02.08.2011
Сообщений: 7,236
|
|
| 10.01.2021, 14:56 | |
|
BeginnerCoderCS, для этих целей был придуман Automapper
1
|
|
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
||
| 10.01.2021, 18:05 [ТС] | ||
|
Шучу конечно )) Посмотрю что за зверь. p.s. Вроде только перестал задавать вопросы по использованию одной библиотеки, так вы мне ещё одну ))
0
|
||
|
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,915
|
|
| 11.01.2021, 08:07 | |
|
BeginnerCoderCS, условно говоря, эта библиотека ничего волшебного не делает. Чисто кому лень руками маперы писать. Если нет желания или времени, то на пока эту библиотеку можно и обойти стороной.
0
|
|
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
||||||||||||
| 12.01.2021, 00:56 [ТС] | ||||||||||||
|
Почитал за мапперы, и на текущий момент мне это скорее всего не нужно будет. Там частично только пересекаются данные. Тем более типы классов будут частично разными. К примеру CountryId у API это string а у БД это int так как это внешний ключ таблицы Country API класс
DB класс
Хотя я пробежался только по верхушке, может конечно и это решает автомаппер. А по namespace вопрос так и открыт ((
0
|
||||||||||||
|
4695 / 2702 / 735
Регистрация: 02.08.2011
Сообщений: 7,236
|
||
| 12.01.2021, 01:16 | ||
0
|
||
|
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,915
|
|||
| 12.01.2021, 06:39 | |||
|
0
|
|||
|
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
|
||
| 12.01.2021, 15:04 | ||
|
0
|
||
|
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,915
|
|
| 12.01.2021, 18:33 | |
|
carrotik, вряд ли тут что-то такое) Скорее всего CountryId сделали строкой по каким-то мало адекватным причинам, если там число натуральное, а не цифробуквенный код какой-то.
0
|
|
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
|||||||||||||
| 13.01.2021, 15:14 [ТС] | |||||||||||||
|
Суть вот такая. Я получаю из сервиса данные строковые Id = 8767 Name = "Евгений" Country = "Россия" City = "Москва" Сервис
Но в БД у меня из этого выходит 3 таблицы со связями. User, Country, City. БД
В итоге было Country = "Россия" а стало CountryId = 1 City = "Москва" - CityId = 1 Так правильно делаю? или опять нет? Добавлено через 12 минут Архитектура построения БД linq2db
0
|
|||||||||||||
|
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,915
|
|||
| 14.01.2021, 06:26 | |||
|
0
|
|||
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
||
| 14.01.2021, 11:07 [ТС] | ||
|
Я говорю о одинаковых именах классов, и если писать полный путь namespace-ов то очень не красиво, и очень не быстро писать получается. Да и не читаемо. Выше вы сказали что переименовывать классы не нужно. Как тогда лучше обращаться к классам с одними и теми же именами, из тертьего namespace
0
|
||
|
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,915
|
||
| 14.01.2021, 11:35 | ||
|
Добавлено через 7 минут Смотрите сами. Если вам так неудобно, то можете и названия разные давать. Но в один прекрасный момент поймёте, что названия вида OrderModelForMonthTaxCalculation не сильно-то и красивее.
1
|
||
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
||
| 22.01.2021, 09:05 [ТС] | ||
|
Подскажите каким образом, это можно будет нормально поддерживать? База MySQL. Делаю экспорт модели бд из HeidiSQL в файл sql. Но если есть хоть одна таблица то будет ошибка. Но больше интересует поддержка в дальнейшем. Допустим есть у нас таблица Country с полями Id, Name. Но в дальнейшем мне нужно будет добавить ещё поле ContinentId, и сделать внешний ключ. Мне нужно будет делать ещё один запрос, на изменение таблицы. Но затем ещё один столбец и ещё один запрос на изменение. А потом у пользователя ляжет база, и её нужно будет пересоздать, мне нужно всю эту последовательность обновлений БД хранить? А если этих обновлнений будет десятки а то и сотни, а их так и будет в итоге, то что делать тогда? Тем более, я не смогу проверить правильно ли создана БД у пользователя. Что-то я опять в тупике. Подскажите как это правильно сделать, чтобы дальнейшие изменения проходили беспроблемно. p.s. Напомню, что будет несколько приложений, которые будут использовать одну базу. То есть запросы на создание таблиц, как я понимаю должны храниться в dll в котором и сущности бд?
0
|
||
|
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,915
|
|
| 22.01.2021, 09:11 | |
|
BeginnerCoderCS, мы это делаем так: завели отдельную таблицу под версию базы. Все скрипты изменения базы идут последовательно, записывая имя операции (Add Email into Users table) в эту таблицу. Каждый скрипт проверяет наличие такой записи в этой таблице, и если есть, то не исполняется.
Все эти скрипты мы собираем в один SQL-файл и выполняем у всех пользователей. Получается, что какая бы версия ни была у пользователя, база обновится до актуальной корректным образом.
1
|
|
|
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
|
|
| 22.01.2021, 09:19 [ТС] | |
|
0
|
|
| 22.01.2021, 09:19 | |
|
Linq2db как изменить имя таблицы? Запрос linq2db c условием разницы времени
Как сохранить изменения сделанные в DataGridView в БД при использовании linq2db?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|