实体框架 - 代码优先,或者可能是模型?

时间:2012-01-12 17:35:08

标签: c# entity-framework

  

可能重复:
  EF 4.1 Code-first vs Model/Database-first

我做了一些研究,但答案并不能让我满意。 我用实体框架创建了自己的asp.net mvc应用程序,用于处理数据库。我开始制作数据库,而不是从该数据库创建模型。嗯,我知道这称为“模型优先”。我知道从学校开始的第二种方式(代码优先)。我的讲师今天告诉我,模型优先方法已经过时了。那是真的吗?或许:代码优先有什么优势吗?在你看来,真正的区别是哪个更好?

3 个答案:

答案 0 :(得分:0)

具体而言,EF代码首先引用代码,而模型首先引用数据库。

哪个更好取决于项目。如果将数据库视为应用程序的核心,或者您正在使用数据库特定功能,那么模型第一种方法是有意义的。

如果域模型被视为应用程序的核心,那么将db保留为持久存储的一种形式,而不是代码优先方法是实用的。

作为旁注:这个概念通常被称为模型优先(域/代码)和db优先(数据库模式)。使用EF这有点令人困惑,因为模型引用了db模式,而不是域模型,代码引用了代码。

答案 1 :(得分:0)

DB首先根本没有过时。事实上,对于许多公司项目而言,这是可行的方法。

如果你是从头开始为自己构建一些东西,代码首先可能是一个更好的方法。

答案 2 :(得分:0)

实体框架提供:1)数据库优先,2)模型优先和3)代码优先。 1& 2创建edmx文件 数据库优先:实体数据模型(edmx:StorageModels)是从现有数据库创建的。 模型第一:使用指定的设计器和映射创建概念数据模型(edmx:ConceptualModels)。数据库将从此生成。 代码优先:创建您的.NET类(没有.edmx文件)。数据库将从此生成。

'Old school'将使用ADO.NET DataSet / DataTable。

最快的数据访问是使用DataReader并编写您自己的数据访问。 没有框架比使用DataReader填充您自己的POCO更快。