1

根据洋葱架构,我的“核心”或“域”层中应该有我的域模型(用户、学生、教师),我的“基础设施”层中应该有我的 DbContext。

我在我的 MVC4 应用程序中使用 Entity Framework 5,并且我正在使用 ADO.NET 数据库优先方法(应用程序的数据库已经存在)。由于 ADO.NET 为我生成实体(.edmx 文件),我如何将域与数据库层分开?

目前我在核心中有我的实体模型,但这不会破坏架构,因为核心不应该知道如何访问数据?

4

1 回答 1

1

好吧,当 EF 人决定命名基于 EF 构建应用程序的不同方式时,他们并没有选择最好的措辞!

根据罗文米勒本人的说法:

诚然,“Code First”并不是名称的最佳选择……Code First 实际上只是 EF 设计器的基于代码的替代方案,它支持创建新数据库或映射到现有数据库。对现有数据库使用 Code First 通常称为“Code Second”,因为……嗯……您首先拥有数据库,然后再编写代码。

也就是说,您现在知道即使您使用现有数据库开始您的项目,也可以摆脱 EDMX。
请查看该文章以了解分步过程。

生成所有内容后,只需将内容放在正确的位置以保持您的Core图层不可知。

看看这个SO answer我帮助了遇到类似问题的人。

于 2013-07-16T15:37:12.437 回答