根据onion architecture我应该在我的“核心”或“域”层中拥有我的域模型(用户,学生,教师),并在我的“基础架构”层中拥有我的DbContext。
我在我的MVC4应用程序中使用Entity Framework 5,并且我正在使用ADO.NET数据库优先方法(应用程序的数据库已经存在)。由于ADO.NET为我生成实体(.edmx文件),如何将域与数据库层分开?
目前我在Core中有我的实体模型,但是由于Core不应该知道如何访问数据,所以不会破坏架构吗?
答案 0 :(得分:1)
那么,当EF家伙决定根据EF建立应用程序的不同方式时,他们没有选择最好的措辞!
根据Rowan Miller自己:
不可否认,'Code First'不是名字的最佳选择...... Code First是 它实际上只是EF Designer的基于代码的替代品,它支持 创建新数据库或映射到现有数据库。使用代码 首先针对现有数据库通常称为“Code Second” 因为......嗯......你先拥有数据库,然后编写代码 第二
那就是说,你现在知道,即使用现有数据库启动项目,也可以摆脱EDMX。
请一步一步地查看that article。
只要生成所有内容,只需将事物放在正确的位置即可使Core
图层不可知。
看看这个SO answer我帮助过有类似问题的人。