Некоторые заметки с моей точки зрения приходят сюда, я не оракул, но, надеюсь, это поможет:)
Мне кажется, что у вас здесь слишком много "моделей". Это может вызвать путаницу и привести к большому количеству кода только для копирования данных между различными представлениями. И много кода означает больше ошибок. Затем я думаю, что наследование между вашими классами данных и бизнес-классами ограничивает вас при определении ваших бизнес-классов. Как насчет того, чтобы создать бизнес-класс, состоящий из нескольких классов данных? Вам лучше использовать интерфейсы или композицию, я думаю.
Обычно я работаю только с одной концептуальной моделью, отражающей сферу бизнеса. Эта модель используется как на уровне данных, так и на бизнес-уровне, а в некоторых случаях даже на уровне представления (в небольших приложениях), как отмечает Dead Rabit. Для устойчивости я использую O / RM, такой как EF 4.
Для более крупных проектов, особенно в распределенных сценариях, я использую собственные DTO для UI-слоев. Эти классы отражают потребности пользовательского интерфейса и могут сильно отличаться от сущностей в концептуальной модели.
Лично я думаю, что Entity Framework 4 очень поможет вам при создании приложений в соответствии с этой структурой. Если вы находитесь на ранней стадии своего проекта и используете .NET 4, вы можете попробовать его?
- Да, вам, вероятно, нужно.
- Использовать композицию
- Да, я бы использовал композицию
- Используйте, например, Entity Framework 4
- (- "-)
- см. Выше