Google Guava 14 включает новый класс ClassPath
с тремя методами сканирования для классов верхнего уровня:
getTopLevelClasses()
getTopLevelClasses(String packageName)
getTopLevelClassesRecursive(String packageName)
Подробнее см. в ClassPath
javadocs .
Я использую EF этим способом, и одна хорошая функция - то, что сгенерированные объекты являются частичными классами, позволяя им быть расширенными способом, который справедливо защищен от проблем регенерации.
Также смотрят на эта ссылка на MSDN, который описывает некоторые сценарии общего использования с EF в отношении Бизнес-логики.
Пример приложения BookLibrary из WPF Application Framework (WAF) показывает, как паттерн Model-View-ViewModel (MVVM) может быть использован в сочетании с Entity Framework.
Вы не можете только повторно прикрепить объекты, если они теряют свой контекст исходного объекта? Необходимо было бы обработать проблемы параллелизма сами все же.
я не рекомендовал бы использовать объекты EF в качестве объектов DataContract для WCF, поскольку Вы свяжете очень сильно свою реализацию объектов объекта клиентам веб-сервиса, изменение будет трудно сделать в будущем, тяжелее больше клиентов, которые Вы планируете на наличии.
Два ограничения для знания об этом, с которым я столкнулся:
Наследованные Объекты не могут иметь Свойств Навигации - т.е. если у Вас есть класс "человека" и затем "клиент" и "поставщик" те, у клиента и поставщиков cannont есть свойства Navigation.
Методы и Вычисляемые поля (что-либо в частичных классах) не передаются по Услугам передачи данных ADO.NET - если Вы будете также использовать Услуги передачи данных ADO.NET что-нибудь, что Вы разворачиваете, то объекты Платформы Объекта на в частичных классах не будут переданы по Услугам передачи данных ADO.NET.
Это обычно не объекты выставочного стопора (для свойств навигации, мы просто не используем наследование на платформе объекта, на данный момент), но могло бы быть что-то вроде интереса для себя. Я даю надежду, что будущий выпуск включит оба из этих объектов.
Платформа Объекта была разработана для объектов объекта, которые будут использоваться в качестве бизнес-объектов, но необходимо иметь в виду, что бизнес-объекты будут связаны с технологией O/R, а также моделью EDM. В EF 1.0 не было никакой поддержки незнание персистентности , сценарии, но поддержка была добавлена в 4,0. Можно реализовать интерфейсы , если Вы не хотите использовать какой-либо из их базовых классов.
С.NET 3,5 SP1, они должны также быть применимыми как парамать и типы возврата в сервисных методах WCF без любого дополнительного кода.
По моему опыту, мы использовали объекты EF на бизнес-слое нашего приложения, но когда мы превратим переход на уровень представления через наш уровень служб WCF, мы создадим объекты представления из объектов EF.
В нашем случае, только представление передается уровню представления. Мы делаем это, чтобы управлять, как данные представлены, и примените защитную проверку для данных, входящих от уровня представления.
В случае ueing EF возражает в транзакции WCF, Вы потеряете контекст объекта, что объект EF был связан. Существуют некоторые усилия в CodePlex, которые пытаются помочь с этим, но я havn't не отставал от их усилий.