Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架-代码优先,或者模型优先?_C#_Entity Framework - Fatal编程技术网

C# 实体框架-代码优先,或者模型优先?

C# 实体框架-代码优先,或者模型优先?,c#,entity-framework,C#,Entity Framework,可能重复: 我做了一些研究,但答案并不让我满意。 我用实体框架启动了自己的asp.NETMVC应用程序,以处理数据库。我从创建数据库开始,然后从数据库创建模型。我知道这叫“模特优先”。我知道第二种方法,从学校开始(代码优先)。我的讲师今天告诉我,模型优先的方法已经过时了。那是真的吗?或者:代码优先有什么优势吗?真正的区别是什么,您认为哪一个更好?具体来说,EF代码首先指代码,模型首先指数据库 哪个更好取决于项目。如果数据库被视为应用程序的核心,或者您正在使用特定于数据库的功能,那么模型优先的方

可能重复:

我做了一些研究,但答案并不让我满意。
我用实体框架启动了自己的asp.NETMVC应用程序,以处理数据库。我从创建数据库开始,然后从数据库创建模型。我知道这叫“模特优先”。我知道第二种方法,从学校开始(代码优先)。我的讲师今天告诉我,模型优先的方法已经过时了。那是真的吗?或者:代码优先有什么优势吗?真正的区别是什么,您认为哪一个更好?

具体来说,EF代码首先指代码,模型首先指数据库

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

如果域模型被视为应用程序的核心,而将数据库仅仅作为持久存储的一种形式,那么代码优先的方法是可行的


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

db first一点也不过时。事实上,对于许多公司项目来说,这是一条路要走


如果您是从头开始为自己构建一些东西,那么代码优先可能是更好的方法

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

“Old school”将使用ADO.NET数据集/数据表

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

不,模型优先和代码优先不是一回事。模型优先和数据库优先使用.edmx文件,而代码优先不使用。看起来区别在于概念和实现。对于EF,他们将域称为代码,将模型称为数据库。从概念上讲,模型是代码,数据库是数据库。我会根据EF定义更新我的答案。不,那是不正确的。在代码优先中,通过fluent代码映射定义模型。在Model first中,模型是通过XML映射定义的(就像在数据库中一样)。数据库优先和模型优先之间的唯一区别是从何处开始。在数据库中,首先在数据库中定义数据模型,然后将其反向工程为xml(.edmx文件)。在Model first中,您可以在设计器中定义数据模型(如果您是核心,则可以手工编码xml),然后从xml生成数据库。在这两种情况下,实体类都是从XML生成的。Code First首先创建实体类。@MystereMan我想您是指EF,我在这里从概念上讲的是ORM,而不是特定的实现或框架。Code-First是在实体框架中开发数据库模型的一种特定方法,所以是的。这就是我和提问者所谈论的。一般概念答案不能回答这里的问题。IMHO,先编码或稍后哭泣。如果从db创建模型,则是数据库优先,而不是模型优先。