|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
Привет. Я не большой специалист в использовании паттерна repository и Unit Of Work. Но очень хочется опробовать. Ищу вариант решения, чтобы не изобретать велосипед. Можете пожалуйста поделится статьей, реальным примером ? По поводу задачи. Мне нужно сготовить сервис который забирает данные в RAW виде и складывает их в таблицу БД (в Raw виде). RAW тут - это XML. Также есть таблица, в которой находятся распарсенные данные. Которые получены из RAW. Тут есть ссылка на RAW (из которого были распарсены данные) и дата. Это справочник, который поддерживается в актуальном состоянии. Вот. Хочется опробовать на такой простенькой задаче паттерны repository и Unit of Work. Помогите примером пожалуйста. Таблицы такие: RawData id RawXml Data1 <...> 01.01.00012 <...> 01.02.0001 ParsedData id RawDataId ParsingData ProductInfo1 1 01.01.0001 'Test Info1'2 1 01.01.0001 'Test Info2'3 2 01.02.0001 'Test Info3'4 2 01.02.0001 'Test Info4' ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 10:28 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
И собственно вопрос - чем лучше пользоваться: EF или Dapper. Еще алгоритм работы : 1. Сервис запрашивает данные в RawXml. Кладет их в БД для историчности (настрою партиционирование и т.д.). 2. тут же парсит их и кладет в таблицу ParsedData. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 10:30 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
"Еще алгоритм работы: 1. Сервис запрашивает данные в RawXml. Кладет их в БД для историчности (настрою партиционирование и т.д.). 2. тут же парсит их и кладет в таблицу ParsedData." если это все, то ни то, ни другое вам не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 14:41 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
kmaw, Не понял. что есть "ни то, ни другое вам не надо" ? А что тогда надо ? Программа то должна быть, каким тогда способом, раз не этим ? ) Я решил поиграться с паттернами Unit of Work и Репозиторием на примере достаточно простой задаче. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 17:47 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
Не нужен тут ни UoW, ни Repository. Зачем? Вы назначение шаблонов-то поняли, определение прочитали? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 18:25 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
И кстати EF - это сам по себе пример реализации Unit of Work. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 18:31 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
skyANAНе нужен тут ни UoW, ни Repository. Зачем? Вы назначение шаблонов-то поняли, определение прочитали? Репозиторий - суть класс с методами Add, Delete, Update, Delete. Это нужно везде. В принципе. UoW - как я понимаю, это расширение Репозитория. Добавлена поддержка транзакций. Чтобы не по 1 запись апдейтить, а 1000. Возможно да, EF реализует Unit of Work. Но совсем чистым мне не хочется его использовать. Нужно разделение Доменных, Персистентных объектов. Программа хоть и простая, но не совсем пустая. Что же тогда нужно ей, если не Репозиторий да ЮнитРаботы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 18:52 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
ProBiotekskyANAНе нужен тут ни UoW, ни Repository. Зачем? Вы назначение шаблонов-то поняли, определение прочитали? Репозиторий - суть класс с методами Add, Delete, Update, Delete. Это нужно везде. В принципе.Походу не читали Вы ни фига. http://design-pattern.ru/patterns/repository.html Репозиторий - суть посредник между уровнями области определения и распределения данных (domain and data mapping layers), используя интерфейс, схожий с коллекциями для доступа к объектам области определения. Вы RAW данные из одного места в другое переливаете, зачем тут Вам domain, data mapping layer и посредник между ними? Вам нужен mapper . ProBiotekUoW - как я понимаю, это расширение Репозитория. Добавлена поддержка транзакций. Чтобы не по 1 запись апдейтить, а 1000.Нет UoW - это не расширение Репозитория. http://design-pattern.ru/patterns/unit-of-work.html UoW обслуживает набор объектов, изменяемых в бизнес-транзакции (бизнес-действии) и управляет записью изменений и разрешением проблем конкуренции данных. У Вас нет никаких бизнес-транзакций, Вы RAW данные из одного места в другое переливаете. Вам тут вообще транзакции не нужны. Залили Вы половину XML, произошла ошибка, ну и фиг бы с ней. Тупо начнёте заного с того места, где упали. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 19:05 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
skyANAУ Вас нет никаких бизнес-транзакций, Вы RAW данные из одного места в другое переливаете. Вам тут вообще транзакции не нужны.В этой задаче вообще не понятно, зачем тут EF или Dapper нужны... "Голый" ADO.NET вполне рулит без всяких оверхед-надстроек. skyANAЗалили Вы половину XML, произошла ошибка, ну и фиг бы с ней. Тупо начнёте заного с того места, где упали.Необходимость транзакций в БД пока еще никто не отменял... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2015, 08:23 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
sphinx_mvНеобходимость транзакций в БД пока еще никто не отменял...Это то тут при чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2015, 09:24 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
skyANAsphinx_mvНеобходимость транзакций в БД пока еще никто не отменял...Это то тут при чем?Непосредственно к этому: skyANAТупо начнёте заного с того места, где упали.Упасть посреди пакетной загрузки и "тупо начать с того места, где упали" - аккурат "самое то", если в БД во время процесса не была поднята транзакция... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2015, 13:37 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
sphinx_mvskyANAпропущено... Это то тут при чем?Непосредственно к этому: skyANAТупо начнёте заного с того места, где упали.Упасть посреди пакетной загрузки и "тупо начать с того места, где упали" - аккурат "самое то", если в БД во время процесса не была поднята транзакция...Ни фига не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2015, 15:38 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
skyANAsphinx_mvпропущено... Непосредственно к этому: пропущено... Упасть посреди пакетной загрузки и "тупо начать с того места, где упали" - аккурат "самое то", если в БД во время процесса не была поднята транзакция...Ни фига не понял. <Троль-мод ОН> <Старт> <Подключились к базе> <Транзакцию не начинали> INSERT ... INSERT ... INSERT ... <Вот в этом месте возникла ошибка => ГоуТу в начало> INSERT ... INSERT ... INSERT ... <Транзакцию закрывать даже не собирались> <Отключились от базы> <Финиш> Сколько записей будет вставлено, если второй проход пройдет без ошибок? А если из-за ошибок будет еще не один проход? А если на сервере будет автокоммит транзакций на каждую ДМЛ-команду? А если автокоммита не будет, а сервер начинает транзакцию по умолчанию? А если сервер при отключении выполнит авторолбэк? <Троль-мод ОФФ> ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2015, 17:06 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
sphinx_mvskyANAпропущено... Ни фига не понял. <Троль-мод ОН> <Старт> <Подключились к базе> <Транзакцию не начинали> INSERT ... INSERT ... INSERT ... <Вот в этом месте возникла ошибка => ГоуТу в начало> INSERT ... INSERT ... INSERT ... <Транзакцию закрывать даже не собирались> <Отключились от базы> <Финиш> Сколько записей будет вставлено, если второй проход пройдет без ошибок? А если из-за ошибок будет еще не один проход? А если на сервере будет автокоммит транзакций на каждую ДМЛ-команду? А если автокоммита не будет, а сервер начинает транзакцию по умолчанию? А если сервер при отключении выполнит авторолбэк? <Троль-мод ОФФ> Задача массовой загрузки чего-то в БД. Там много вариантов. Транзакции к этому всему имеют опосредованное отношение. Это какая-то утилитарная операция, а если нет, то тогда для ТС все вообще слезы и печаль ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2015, 21:06 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
sphinx_mvskyANAпропущено... Ни фига не понял. <Троль-мод ОН> <Старт> <Подключились к базе> <Транзакцию не начинали> INSERT ... INSERT ... INSERT ... <Вот в этом месте возникла ошибка => ГоуТу в начало> INSERT ... INSERT ... INSERT ... <Транзакцию закрывать даже не собирались> <Отключились от базы> <Финиш> Сколько записей будет вставлено, если второй проход пройдет без ошибок? А если из-за ошибок будет еще не один проход? А если на сервере будет автокоммит транзакций на каждую ДМЛ-команду? А если автокоммита не будет, а сервер начинает транзакцию по умолчанию? А если сервер при отключении выполнит авторолбэк? <Троль-мод ОФФ>Создайте отдельный топик и там обсуждайте свою тролль-проблему.. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2015, 09:35 |
|
Ищу пример Unit of Work - для EF или Dapper (что лучше ?)
|
|||
---|---|---|---|
#18+
skyANAsphinx_mvпропущено... <Троль-мод ОН> <Старт> <Подключились к базе> <Транзакцию не начинали> INSERT ... INSERT ... INSERT ... <Вот в этом месте возникла ошибка => ГоуТу в начало> INSERT ... INSERT ... INSERT ... <Транзакцию закрывать даже не собирались> <Отключились от базы> <Финиш> Сколько записей будет вставлено, если второй проход пройдет без ошибок? А если из-за ошибок будет еще не один проход? А если на сервере будет автокоммит транзакций на каждую ДМЛ-команду? А если автокоммита не будет, а сервер начинает транзакцию по умолчанию? А если сервер при отключении выполнит авторолбэк? <Троль-мод ОФФ>Создайте отдельный топик и там обсуждайте свою тролль-проблему.."Не говорите, что мне делать, и я не скажу куда Вам идти" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2015, 11:18 |
|
|
start [/forum/topic.php?fid=17&fpage=13&tid=1349495]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 234ms |
total: | 400ms |
0 / 0 |