Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
Приветствую всех. Есть проект на LINQ. Там есть репозитарий работает через UoW. код Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. Это делал не я. Теперь мне дали задание это наследство сделать так что можно было менять L2S на другие контексты БД - Entity и т.п. Я пока плохо разбираюсь в теме и не могу свести в едино - помогите. Как изменить репозиторий и др. так чтобы можно было потом привязать контекст БД в одном месте к интерфейсу и всё бы резолвилось через IoC/DI. Как бы переключать на разные базу на другую с минимальными изменениями. Получится ли сделать единый репозиторий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 13:04 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
Фаулер предлагает использовать для этого шаблон Стратегия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 13:11 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
skyANA, Хорошо, а что в данной ситуации мне делать? Я уже обчитался теорий и окончательно запутался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 13:39 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
в ступоре, перечислите для начала какие "контексты" требуется поддерживать и какой IoC контейнер используете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 13:50 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
И условия, от которых зависит выбор "контекста". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 13:52 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
Кхм. А можно поинтересоваться на кой нужно контексты менять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 13:58 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
Также можно поступить проще: реализовать по репозиторию для каждого "контекста". Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 13:59 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIКхм. А можно поинтересоваться на кой нужно контексты менять?Ну например данные от разных поставщиков этих самых данных забирать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 14:01 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
Также может хотят реализовать Polyglot Persistence. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 14:03 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
skyANAТакже можно поступить проще: реализовать по репозиторию для каждого "контекста". Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Тогда получается что базовый репозиторий по сути один и тот же только поле db меняется. Или у Монго другая схема доступа к данным? т.е. получить из Монго db.Users.Where(... как в L2S - имена таблиц не совпадают? И в Entity? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 14:14 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
А, ещё в качестве "контекста" можно рассматривать кэширование: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 14:15 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
в ступореТогда получается что базовый репозиторий по сути один и тот же только поле db меняется. Или у Монго другая схема доступа к данным? т.е. получить из Монго db.Users.Where(... как в L2S - имена таблиц не совпадают? И в Entity?У Вас тема называется "Как подменить базу данных". То есть базы данных минимум две. Они обе реляционные? Схема у них одинаковая/разная? MongoDB - это документо-ориентированная СУБД. Ясен пень в общем случае там другая схема :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 14:19 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
в ступоре, а зачем вообще свойство db доступно наследникам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 14:28 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
skyANAУ Вас тема называется "Как подменить базу данных". Так я про то же, сначала про БД, а затем: в ступоресделать так что можно было менять L2S на другие контексты БД - Entity и т.п. ХЗ что ТС хочет. Если менять БД то лучше заюзать EF и менять провайдеры. Переписывать придется не много. А если менять L2SQL на EF и т.д. то хз зачем это и с трудом представляю как это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 14:43 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
skyANAв ступоре, а зачем вообще свойство db доступно наследникам? Я не знаю - не я писал. Лучше сделать приватным? Получается, что без собственного репозитория к контексту не обойтись. Тогда нужно менять сам репозиторий чтобы в контроллерах не менять ничего. Не могу сообразить как это лучше сделать. Ведь для регистрации контейнера нужна конкретная реализация а не шаблон Т. Например для Unity. Код: c# 1. 2. 3. 4. Совсем запутался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 14:51 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKI, да другую стратегию доступа к данным ТС хочет реализовать (называет просто своими словами "схема доступа к данным"). У Фаулера можешь почитать как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 14:52 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
skyANAда другую стратегию доступа к данным ТС хочет реализовать (называет просто своими словами "схема доступа к данным"). У Фаулера можешь почитать как. Ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 15:00 |
|
||
|
Как подменить базу данных
|
|||
|---|---|---|---|
|
#18+
в ступореskyANAв ступоре, а зачем вообще свойство db доступно наследникам? Я не знаю - не я писал. Лучше сделать приватным?Лучше разобраться как свойство используется и на вопрос ответить. Я же спросил не "Какого хера", а "Зачем" :) в ступореПолучается, что без собственного репозитория к контексту не обойтись. Тогда нужно менять сам репозиторий чтобы в контроллерах не менять ничего. Не могу сообразить как это лучше сделать. Ведь для регистрации контейнера нужна конкретная реализация а не шаблон Т. На примере StructureMap: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Вуаля. Сущности класса B у нас кэшируются, а сущности класса A нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 15:03 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38777348&tid=1356937]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 433ms |

| 0 / 0 |
