Обновить
10
0

Пользователь

Отправить сообщение
Можно ли их рассматривать как часть domain model?
Их этого вопрос, не сильно ли много внимания domain model и попыткам обложить её кучей паттернов?
видимо
Максимум что получится — ловить эксепшены на SaveChanges.
тут видимо то же не получится lair выше описывает проблему, бд нас не спасает
а что же делать, когда нужны и параллельная работа, и масштабируемость?
да, не все так радужно, а что бы предложили вы?
Ну то есть пользователь выбрал билет, нажал кнопку, а ему и говорят: билет продан? Прекрасно, в чем тогда вообще смысл этого упражнения с «блокировками»?
в том что он это узнает сразу, а не после того как он ввел все данные и подтвердил
«как же показать пользователю карту незанятых мест?»
свободные места — не проданные билеты + на которых нет действительных блокировок
Правда, печально?
да я то же понял что вы описали именно эту проблему, но смотря в глаза реальности скорость продажи билетов не космическая.
у нас было несколько экспериментов по EF, разные комбинации, если использовать провайдеры от разного производителя, то результат не очень, с одним производителем дела на много лучше, но проблемы с запросами есть.
Получается все рассуждения про domain model ничего не стоят
сервис будет входить в DM
Вполне может быть, что будет два инстанса сервиса (а в реальности — будет обязательно, для отказоустойчивости).
если на 1 машине, то mutex, а вот если на нескольких, то в сеж бд
для продажи билетов — в полне
И что произойдет с точки зрения пользователя?
инфа о том что билет продан
И кто/как эту дату обрабатывает?
1. проверка есть ли блокировка
2. если нет, то ставиться блокировка и устанавливается тайм
3. если есть, то проверяется таймаут, если он просрочен, то сносим блокировку, переход к 2
Отмечаем где?
хороший вопрос, ну мы же где то должны сохранить, что такие то билеты проданы.
Вообще-то, это не уникальность, а дефолтное значение.
да, не оттуда копипаст, промазал
как, по-вашему, БД гарантирует уникальность?
видимо блокирует таблицу на время записи.
Согласен что AST (я походу подхватил, писать действительно проще чем expression tree) будет одно и то же, но вот провайдер может не суметь его обработать
при появлении новых запросов строиться новый билдер только для него, тестируется как запрос отрабатывает на разных репах, если на кком то что то плохо, то правки только для этой реализации. удобно кстате
Linq2Sql и EF, 2Sql издревна пошел, проект изначально на нем писался, к стати использовалось расширение контекста как хранилище набора скомпилированных запросов, вы приводили этот прием, только работа шла на прямую с контекстом.
Прекрасно. А если к этому моменту другой пользователь нажал «купить» с теми же местами?
одновременно внести записи в таблицу с одинаковыми ключами не возможно.
(а) что делать, если пользователь не оплатил?
я ж писал, дата (таймаут) по которой блокировка считается не действительной
(б) как в дальнейшем не продать билеты на эти места?
при сохранении отмечаем что билет продан.
Это обычная таблица в SQL, или что-то другое? Если да, то как, по-вашему, БД обеспечивает уникальность записей в индексе?
да, ALTER TABLE [dbo].[Table] ADD CONSTRAINT [DF_Table_number] DEFAULT ((0)) FOR [number] уникальность, правда это не ключ, просто вариантов несколько, как унифицировать запись
4.Нажали «купить»
блокировка
6.Оплатили
сохранили, сняли блокировку
Почему не будет?
в таблице блокировок уникальность записи по составному ключу. lock escalation там не нужен, возможно вы не правильно поняли, таблица блокировок это НАШЕ творение.
Эм нет, все же я пришел к выводу, что лучше использовать сервис (например wcf) и работать с ним а не с бд, решает все проблемы
.
Как только у нас появляется разнообразие запросов, мы будем изобретать велосипед,
если запросов очень много, то лучше всего использховать habrahabr.ru/post/125720
смысл в дефрагментации крупного запроса на простые.
нет, но ограничивать доступ между клиентами лучше на сервере чем на клиенте — проще
Don't hide it behind an interface.
речь про IQuariable, за которым прячется конкретная орм,

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность