Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6 7   вперед  Ctrl      все
 Re: EF, Repository, UnitOfWork  [new]
SeVa
Member [заблокирован]

Откуда: Москва
Сообщений: 4324
МСУ
Парамон
Как бы такое провернуть?

Не понял, а в чем проблема?

Где-то в степи
пропущено...

какая логика, вытащить модель из базы и размазать по контроллеру - все в returne что бы не пачкать тело метода?
50 проц основные нужды..

Чтение БД - это не логика, это чтение БД. А вот дальше идет логика. И тому и другому не место в контроллере.


Очередной детский лепет. Логика должна быть в контроллере
13 янв 13, 22:08    [13763441]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
SeVa
МСУ
пропущено...

Не понял, а в чем проблема?

пропущено...

Чтение БД - это не логика, это чтение БД. А вот дальше идет логика. И тому и другому не место в контроллере.


Очередной детский лепет. Логика должна быть в контроллере
ты идиот?
13 янв 13, 22:32    [13763555]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
сева, ты балбес

http://ru.wikipedia.org/wiki/Model-View-Controller

Назначение
Основная цель применения этой концепции состоит в разделении бизнес-логики (модели) от её визуализации (представления, вида).


Наиболее частые ошибки
Начинающие программисты (особенно в веб-программировании, где аббревиатура MVC стала популярна) очень часто трактуют архитектурную модель MVC как пассивную модель MVC. В этом случае модель выступает исключительно совокупностью функций для доступа к данным, а контроллер содержит бизнес-логику
13 янв 13, 22:45    [13763594]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
SeVa
Member [заблокирован]

Откуда: Москва
Сообщений: 4324
МСУ
сева, ты балбес

http://ru.wikipedia.org/wiki/Model-View-Controller

Назначение
Основная цель применения этой концепции состоит в разделении бизнес-логики (модели) от её визуализации (представления, вида).


Наиболее частые ошибки
Начинающие программисты (особенно в веб-программировании, где аббревиатура MVC стала популярна) очень часто трактуют архитектурную модель MVC как пассивную модель MVC. В этом случае модель выступает исключительно совокупностью функций для доступа к данным, а контроллер содержит бизнес-логику


1. Ты выше утверждал, что контроллер не должен содержать бизнес-логику, а теперь даешь ссылку, где утверждается совершенно обратное. Сам себя макнул в собственно дермецо.
2. Все твои mvc, mvp, о которых ты слышал только в теории и объеме wiki для Эллочек-людоедок, я давно уже попробовал на зуб и выкинул за полной их непригодностью.
13 янв 13, 22:58    [13763626]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
Парамон
Member

Откуда:
Сообщений: 1468
МСУ
Не понял, а в чем проблема?

Нужно мапить модель к дто, а это лишняя дополнительная логика специально для дто.
13 янв 13, 22:59    [13763631]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
SeVa
Member [заблокирован]

Откуда: Москва
Сообщений: 4324
Парамон
МСУ
Не понял, а в чем проблема?

Нужно мапить модель к дто, а это лишняя дополнительная логика специально для дто.


Это левые танцы с бубнами, которые показывают убогость чистого ORM
13 янв 13, 23:05    [13763654]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
SeVa
1. Ты выше утверждал, что контроллер не должен содержать бизнес-логику, а теперь даешь ссылку, где утверждается совершенно обратное. Сам себя макнул в собственно дермецо.

Тебе окончательно голову оторвало? Контроллер не должен содержать бизнес-логику, об этом пишется в статье. Ты читаешь жопой?
Наиболее частые ошибки => контроллер содержит бизнес-логику
Тебе даже википедию нельзя читать, иди пиродки пеки, бездарность.

SeVa
2. Все твои mvc, mvp, о которых ты слышал только в теории и объеме wiki для Эллочек-людоедок, я давно уже попробовал на зуб и выкинул за полной их непригодностью.

Ты контроллер от модели отличить не можешь, дикарь, о каких зубах ты вещаешь? Иди в сад.
13 янв 13, 23:21    [13763698]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Парамон
Нужно мапить модель к дто, а это лишняя дополнительная логика специально для дто.

А дто не должна отмапливать сама, этим должен заниматься маппер - отдельный класс с тупыми статическими методами.
13 янв 13, 23:23    [13763704]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
SeVa
Парамон
пропущено...
Нужно мапить модель к дто, а это лишняя дополнительная логика специально для дто.

Это левые танцы с бубнами, которые показывают убогость чистого ORM

Дурень, о ORM речт вообще не идет. Разговор об уровнях BL <=> DTO.
Пшел вон, не мешайся под ногами, ламер, пока дяди взрослые разговаривают.
13 янв 13, 23:25    [13763707]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
Lord British
Member

Откуда: На Камчатке красиво?
Сообщений: 758
SeVa
... ORM.... а они рассчитаны только под чистый CRUD


Конкретно EF и в простом CRUD может интересно себя повести. например, при включенном Concurency можно схватить ошибок при апдейтах Order/Details, когда изменяются только Details

+ Пример (многобукв)

Пусть есть Order/Details

Гавнакод, удаляет одну деталь и изменяет вторую.
            using (var ctx = new DB1Entities())
            {
                var o = ctx.Orders.First();

                var od = o.Details.First();
                o.Details.Remove(od);
                ctx.OrderDetails.Remove(od);

                od = o.Details.First();
                od.Quantity = 7;

                DumpEntity(ctx);

                ctx.SaveChanges();
            }


Состояния entries в контексте Order - UNCHANGED
System.Data.Entity.DynamicProxies.OrderDetail_B5EF51... - Modified
System.Data.Entity.DynamicProxies.OrderDetail_B5EF51... - Deleted
[b]System.Data.Entity.DynamicProxies.Order_DFFC55BA5F8C... - Unchanged[/b]


В базу отправляются только два запроса, версия Order остается не изменна
exec sp_executesql N'update [dbo].[ORDER_DETAIL]
set [QUANTITY] = @0
where (([ID_ORDER_DETAIL] = @1) and ([VERSION] = @2))
select [VERSION]
from [dbo].[ORDER_DETAIL]
where @@ROWCOUNT > 0 and [ID_ORDER_DETAIL] = @1',N'@0 int,@1 int,@2 binary(8)',@0=7,@1=2,@2=0x00000000000007D7


exec sp_executesql N'delete [dbo].[ORDER_DETAIL]
where (([ID_ORDER_DETAIL] = @0) and ([VERSION] = @1))',N'@0 int,@1 binary(8)',@0=1,@1=0x00000000000007D6


Т. е. при конкурентном доступе, второй пользователь может не увидет этих изменений, если он не работал с измененной/удаленной деталью. Так как у Order версия не поменяется.

Чтобы работало как надо, прийдется вставить строчку

            using (var ctx = new DB1Entities())
            {
                var o = ctx.Orders.First();

                var od = o.Details.First();
                o.Details.Remove(od);
                ctx.OrderDetails.Remove(od);

                od = o.Details.First();
                od.Quantity = 7;

[b]             ctx.Entry(o).State = System.Data.EntityState.Modified;[/b]

                DumpEntity(ctx);

                ctx.SaveChanges();
            }


И тогда все ОК, версия обновляется ОК.
System.Data.Entity.DynamicProxies.OrderDetail_B5EF51... - Modified
[b]System.Data.Entity.DynamicProxies.Order_DFFC55BA5F8C... - Modified[/b]
System.Data.Entity.DynamicProxies.OrderDetail_B5EF51... - Deleted


exec sp_executesql N'update [dbo].[ORDER]
set [ID_CUSTOMER] = @0, [ORDER_DATE] = @1, [SHIPMENT_COUNTRY] = @2, [SHIPMENT_CITY] = @3, [SHIPMENT_STREET] = @4, [SHIPMENT_BUILDING] = @5
where (([ID_ORDER] = @6) and ([VERSION] = @7))
select [VERSION]
from [dbo].[ORDER]
where @@ROWCOUNT > 0 and [ID_ORDER] = @6',N'@0 int,@1 datetime2(7),@2 nvarchar(50),@3 nvarchar(50),@4 nvarchar(50),@5 nvarchar(10),@6 int,@7 binary(8)',@0=1,@1='2013-01-13 22:54:55.2470000',@2=N'fqwef',@3=N'qwefqwef',@4=N'123r123r',@5=N'wefwef',@6=2,@7=0x00000000000007D8

exec sp_executesql N'update [dbo].[ORDER_DETAIL]
set [QUANTITY] = @0
where (([ID_ORDER_DETAIL] = @1) and ([VERSION] = @2))
select [VERSION]
from [dbo].[ORDER_DETAIL]
where @@ROWCOUNT > 0 and [ID_ORDER_DETAIL] = @1',N'@0 int,@1 int,@2 binary(8)',@0=7,@1=4,@2=0x00000000000007DA

exec sp_executesql N'delete [dbo].[ORDER_DETAIL]
where (([ID_ORDER_DETAIL] = @0) and ([VERSION] = @1))',N'@0 int,@1 binary(8)',@0=3,@1=0x00000000000007D9




И это Connected сценарий.
13 янв 13, 23:27    [13763712]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
SeVa
Member [заблокирован]

Откуда: Москва
Сообщений: 4324
МСУ
SeVa
1. Ты выше утверждал, что контроллер не должен содержать бизнес-логику, а теперь даешь ссылку, где утверждается совершенно обратное. Сам себя макнул в собственно дермецо.

Тебе окончательно голову оторвало? Контроллер не должен содержать бизнес-логику, об этом пишется в статье. Ты читаешь жопой?
Наиболее частые ошибки => контроллер содержит бизнес-логику
Тебе даже википедию нельзя читать, иди пиродки пеки, бездарность.

SeVa
2. Все твои mvc, mvp, о которых ты слышал только в теории и объеме wiki для Эллочек-людоедок, я давно уже попробовал на зуб и выкинул за полной их непригодностью.

Ты контроллер от модели отличить не можешь, дикарь, о каких зубах ты вещаешь? Иди в сад.


Я тебе миллион раз говорил, чтобы ты подтирался своей вики сам. Она только для этого пригодна. Я не собираюсь читать это и вникать в твою дурь.
Если не в контроллере, то где? В космосе, муфлон, она должна быть реализована? Во view и моdel ей не место
13 янв 13, 23:33    [13763734]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
SeVa
Member [заблокирован]

Откуда: Москва
Сообщений: 4324
[quot SeVa]
МСУ
пропущено...

Тебе окончательно голову оторвало? Контроллер не должен содержать бизнес-логику, об этом пишется в статье. Ты читаешь жопой?
Наиболее частые ошибки => контроллер содержит бизнес-логику
Тебе даже википедию нельзя читать, иди пиродки пеки, бездарность.

пропущено...

Ты контроллер от модели отличить не можешь, дикарь, о каких зубах ты вещаешь? Иди в сад.


Я тебе миллион раз говорил, чтобы ты подтирался своей вики сам. Она только для этого пригодна. Я не собираюсь читать это и вникать в твою дурь.
Если не в контроллере, то где? В космосе, муфлон, она должна быть реализована? Только у мудаков она во view и моdel, которые ничего кроме вики в пять строк, осилить не могут
\
13 янв 13, 23:36    [13763743]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
SeVa
Member [заблокирован]

Откуда: Москва
Сообщений: 4324
ЗЫ Попроси взрослых поменять тебе подгузники на ночь и не путайся под ногами
13 янв 13, 23:37    [13763747]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
SeVa
Я тебе миллион раз говорил, чтобы ты подтирался своей вики сам. Она только для этого пригодна. Я не собираюсь читать это и вникать в твою дурь.

Дурень, тебе вникать просто нечем, это проблема не википедии, это проблема твой тупости. Обосрался ты сегодня знатно, очередной раз опускаем тебя на форуме. Какого оно, быть унылой кухаркой, поведай нем?

SeVa
Если не в контроллере, то где? В космосе, муфлон, она должна быть реализована? Во view и моdel ей не место

Дятел тупорылый, в моделе и только в моделе. Не в контроллере, не во вью, не во вьюмоделе, не в репозитории. А в моделе. Заруби себе на носу, двоешник.
13 янв 13, 23:39    [13763757]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
SeVa
ЗЫ Попроси взрослых поменять тебе подгузники на ночь и не путайся под ногами

Знатно ты лажанулась сегодня, кухарочка. Знатно. Как раз попкорн подоспел
13 янв 13, 23:41    [13763763]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
Парамон
Member

Откуда:
Сообщений: 1468
МСУ
А дто не должна отмапливать сама, этим должен заниматься маппер - отдельный класс с тупыми статическими методами.

Понятно что не сама, но все таки необходимость лишних телодвижений.
13 янв 13, 23:44    [13763778]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Парамон
МСУ
А дто не должна отмапливать сама, этим должен заниматься маппер - отдельный класс с тупыми статическими методами.

Понятно что не сама, но все таки необходимость лишних телодвижений.

Маппер, одна строчка кода для намапливания целого экземпляра (для простых свойств).
14 янв 13, 00:07    [13763844]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
Парамон
Member

Откуда:
Сообщений: 1468
МСУ
Маппер, одна строчка кода для намапливания целого экземпляра (для простых свойств).

Для простых автомаппер.
Можно сделать отдельный класс для логики, получится чисто процедурный подход, но типизированный и с изоляцией )
14 янв 13, 00:17    [13763888]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Парамон
МСУ
Маппер, одна строчка кода для намапливания целого экземпляра (для простых свойств).

Для простых автомаппер.
Можно сделать отдельный класс для логики, получится чисто процедурный подход, но типизированный и с изоляцией )

Да и автомаппер не нужен, еще левую сборку тянуть. Есть МСУ маппер :)
http://codearticles.ru/Home/ArticleView/1383

Так у нас же есть модель, там м логика хорошо ляжет. А валидация - во вью моделях.
14 янв 13, 00:27    [13763927]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
Парамон
Member

Откуда:
Сообщений: 1468
МСУ,

Можно и так. Вообще стараюсь обходится простым projection по возможности.
14 янв 13, 00:38    [13763964]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
ViPRos
Member

Откуда:
Сообщений: 9883
SeVa
ViPRos, а не нужны никому эти жесткие связи и полное описание БД, тк смысл всех этих мультитков - уйти от зависимости структуры БД.Тк ООП и БД - две большие разницы. Помимо этого, нужны разные срезы данных(об этом говорилось в статье)
Вместо с танцев с бубнами для описания можно спокойно содать view за пять минут, запустить кодогенратор, а дальше если есть нормальный фреймворк, то больше делать ничего не нужно, все и так подхватится.
всесто БД - черный ящик, который предоставляет нужные интерфейсы. Помимо нее могут разные постащики данных(внешние сервисы, файлы, очереди сообщений, голубиная почта и тд).

а я считаю что нафиг не нужны структурные классы в коде, их надо описывать в метаданных и все
а из метаданных создать БД и GUI
тогда все финтифлюшки тира ОРМ , ДТО, ... нафиг не нужны
14 янв 13, 01:08    [13764061]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
ViPRos
тогда все финтифлюшки тира ОРМ , ДТО, ... нафиг не нужны

Датасеты?
14 янв 13, 09:05    [13764498]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
ViPRos
Member

Откуда:
Сообщений: 9883
МСУ,

не объязательно
кеш можно построить на любых коллекциях
просто датасет уже готовая инфраструктура с релейшнами, констрейтами и т.д.
14 янв 13, 10:09    [13764774]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
netivan
Member

Откуда:
Сообщений: 8768
вопрос для обсуждения. Есть репозиторий - стадарт КРУД + select ,where.
Задача - поиск по названию некой сущности. Реализцется как поиск по названию по 3 колонкам.
Вот куда это запихать лучше.
1. В интерфейс dao
2. Сделать напрямую в методе, которому это нужно.
14 янв 13, 11:30    [13765309]     Ответить | Цитировать Сообщить модератору
 Re: EF, Repository, UnitOfWork  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
ViPRos
кеш можно построить на любых коллекциях

Вот он у нас и строится в EF на ICollection<T>.

ViPRos
просто датасет уже готовая инфраструктура с релейшнами, констрейтами и т.д.

В топку датасеты.

netivan

В репозиторий и клади или что-там у тебя. Насколько я знаю, ты куришь EF - уже копья сломал, нахрена тебе свой круд репозиторий, если в EF контекст и так уже репозиторий?
14 янв 13, 12:01    [13765530]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6 7   вперед  Ctrl      все
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить