我有一个项目结构如下:.Persistence -> .Repo -> .Services -> .Controllers -> MVC3 App。
每一层都有一个带有接口的程序集,还有一些其他的程序集,如 .Entities、.ViewModels 和通用代码程序集。
持久性- 这包含 EF4 数据上下文(代码优先)和对 EF4.3 的引用。有一个用于创建上下文的工厂,称为 GetContext(),该工厂实现了 IDisposable。这不是单例,因为我认为 Windsor 会使用 LifestyleSingleton() 为我做些什么。
Repo - 这包含实现存储库和规范模式的存储库(http://huyrua.wordpress.com/2010/07/13/entity-framework-4-poco-repository-and-specification-pattern/)。
其他层是不言自明的......
问题:
1. 为什么开启延迟加载时必须开启代理创建?
2. 如果我想设置lazyloading = false,我可以将我在服务层中的IEnumerable 转换为ObjectQuery 以便在那里使用.Include() 吗?