Что каждый освобождает путем создания ПОСТЕПЕННО использующий шаблоны T4 в платформе объекта 4.0? Почему поведение по умолчанию при использовании платформы объекта 4.0 для не создания ПОСТЕПЕННО?
Вы теряете ряд вещей. «Чистый» POCO имеет ограниченное использование в ORM, потому что он не отслеживает изменения. Другими словами, когда вы изменяете объект, а затем сохраняете изменения в контексте, вы хотите, чтобы измененные свойства сохранялись в базе данных. С «чистым» POCO вы можете сделать это с помощью отслеживания изменений на основе снимков, что довольно неэффективно. Вы также можете сделать это с помощью прокси времени выполнения, которые заставят вас сделать ваши свойства трека общедоступными виртуальными
, поэтому у вас, вероятно, больше нет «POCO». Кроме того, использование прокси означает, что вы не знаете истинный тип среды выполнения экземпляра.
Вы также теряете некоторые удобные свойства, такие как EntityState
.
«Чистые» объекты POCO не могут выполнять отложенную загрузку. Опять же, вы можете обойти это с помощью типов прокси, но, опять же, если вы используете прокси, у вас действительно нет «чистого» POCO.
Вдобавок ко всему, в Entity Framework меньше необходимости использовать сущности POCO, чем в некоторых других ORM.Это связано с тем, что вы всегда можете проецировать свои типы сущностей на экземпляры POCO с помощью LINQ без необходимости сначала материализовать экземпляры сущностей. Таким образом, «чистые» POCO всегда доступны в приложении Entity Framework, даже если вы не сопоставляете свои объекты таким образом.