tco*_*ode 3 entity-framework reverse-engineering entity-framework-5
我即将开始使用Entity Framework Code First开发ASP.Net MVC 4 Web应用程序.因为数据库已经存在,所以我使用Code First执行逆向工程的能力来生成我的域类.
我希望在我的解决方案中将这些域类放在他们自己的独立项目中,以保持它们的持久性无知.但是,当我运行该工具对我的数据库进行逆向工程时(使用Entity Framework Power Tools),我发现创建了域类,但是还创建了一个名为Mapping的文件夹,其中包含每个域类的映射类,然后使用Fluent API映射表属性.这一切都很好.
但是,我还发现,映射类依赖于对实体框架的引用,我只是想知道这被认为是不好的做法吗?通常当我创建POCO类时,它们完全是持久性无知的,即在该项目中根本没有引用实体框架.
你的意见?
谢谢.
您可以将POCO类保留在一个项目中,而映射则保留在另一个项目中.只需添加对POCO类所在项目的引用.另一种方法是创建数据访问层并在那里移动映射.这样你就有三个项目.您的主要MVC项目,模型项目和数据访问层,其中包含映射和对EntityFramework的引用.
例如,您的解决方案可能是这样的:
1. Web User Interface (MVC)
2. Business layer
3. Unit of Work/Repository
4. Data access layer (Mapping from EF Reverse Engineering)
Run Code Online (Sandbox Code Playgroud)
所有四个项目都可以访问第五个项目,即领域模型(EF逆向工程模型).您的1与2通信,2与3通信,3与4通信.所有这四个都引用了域模型,因此您不必在层之间执行任何类型的域模型转换.
顺便说一下,我忽略了服务层,但是如果你有Web服务或REST,你可以将它放在另一个项目中,但是我们不要涉及太多的细节.
归档时间: |
|
查看次数: |
1412 次 |
最近记录: |