Если вы хотите использовать ПОКО у вас есть три варианта:
первый выбор для создания EDMX модели. В EDMX вы отключите генерацию кода, чтобы модель не создавала для вас тяжелые объекты. Чем вы будете создавать свои классы POCO, которые должны следовать этим ограничениям:
- Каждый класс должен иметь такое же имя, как сущности в модели
- Каждый класс должен иметь конструктор без параметров. Должен быть открытым, но я думаю, что он также работает с защищенным.
- Каждый класс должен иметь все свойства (включая навигационные свойства) с точно такими же именами, что и в модели. Все свойства, кроме навигационных коллекций, должны иметь геттер и сеттер (по крайней мере, защищенные).
- Свойства навигационных коллекций должны быть, по меньшей мере, типом ICollection <T>, и вы должны их инициализировать (именно по этой причине они не нуждаются в настройщике). Это не относится к отслеживанию прокси-серверов, где EF инициализирует коллекцию.
Второй выбор аналогичен первому, но вы сами не создаете классы POCO. Вместо этого вы используете шаблон POCO, который можно загрузить в VS 2010. Этот шаблон использует .tt-файл для создания POCOs для вас.
Третий вариант заключается в использовании подхода Code First, в котором вы кодируете свои POCOs и определяете отображение в коде. Для этого вам нужно EF 4.0 Feature CTP. Я понимаю, что это единственный способ использования POCOs без модели EDMX. Но это только CTP с множеством ограничений на данный момент.
Danke. Я боялся, что все еще должен был сделать эти кровавые сущности :( –