Я создаю свое первое веб-приложение MVC 4/Razor с помощью Entity Framework 5 и делаю небольшую домашнюю работу, прежде чем принимать какие-либо дизайнерские решения.
Я вижу, что объекты EF спускаются с EntityObject
, который, как представляется, содержит много полезных материалов для лучшей практики, а не наименьшая из которых - оптимистичная обработка concurrency. Другими словами, если 2 человека загружают запись Джейн Доэ из 123 Maple Street одновременно, первая меняет свое имя на Джейн Смит, а вторая меняет свой адрес на 321 Maple Street, тогда очень легко разрешить объединение обоих изменений в запись без конфликтов, в то время как попытка второго пользователя изменить тот же самый поле, что и первый пользователь, приведет к ошибке.
С другой стороны, довольно стандартная практика создания легких объектов передачи данных для передачи данных между сервером и клиентом и служат в качестве или в моделях для структуры MVC. Это отлично подходит для обеспечения минимального трафика для клиента, но он проверяет проверку concurrency.
Итак, я задаюсь вопросом о целесообразности использования DTO. Каковы причины использования DTO? Насколько плохо использовать EntityObject
как или в модели MVC? Какое другое решение вы предложите включить оптимистическую обработку concurrency, как я уже говорил выше?