Sql 实体框架模型创建

Sql 实体框架模型创建,sql,database,entity-framework,entity-framework-designer,Sql,Database,Entity Framework,Entity Framework Designer,使用实体框架时,基本上有两种方法来创建模型。您可以在SQL server或Visual Studio EF designer中创建模型。下文概述了这些情况 从数据库开始 首先在SQL server数据库中创建模型,然后指向EF为您创建.edmx文件。通过使用这种方法,您可以使用SQLServerManagementStudio创建所有模型和关系 从VisualStudioEF设计器开始 这种方法是首先在VisualStudio中创建模型,然后从中创建数据库。通过这样做,您似乎不必太在意表和关系

使用实体框架时,基本上有两种方法来创建模型。您可以在SQL server或Visual Studio EF designer中创建模型。下文概述了这些情况

从数据库开始 首先在SQL server数据库中创建模型,然后指向EF为您创建.edmx文件。通过使用这种方法,您可以使用SQLServerManagementStudio创建所有模型和关系

从VisualStudioEF设计器开始 这种方法是首先在VisualStudio中创建模型,然后从中创建数据库。通过这样做,您似乎不必太在意表和关系

以下是我所做的,以及我为什么这样做 我首先使用SQLServerManagementStudio创建模型。我这样做是因为我认为使用该工具创建和修改表更容易,而且我确切地知道正在创建什么。我通过将EF模型指向现有数据库来创建它。之后,我创建了一个脚本,以便将数据库脚本化为文件,并将其放入版本控制中。当需要进行更改时,我会更改数据库,然后更新.edmx文件以及数据库项目


我想知道这些不同方法的优缺点是什么,决定使用哪种方法的标准应该是什么?我做错了吗?我应该先在Visual Studio中创建模型吗?

我不认为有“正确”或“错误”的方法,这在很大程度上取决于如何部署代码、代码的去向等。还有第三种方法,Scott Guthrie最近在博客中提到:



作为补充说明,即使您从模型设计器开始,我认为您也必须始终考虑您的表/关系,因为在数据库中出错可能会导致进一步的大问题。

我认为没有正确或错误的方法

在我们公司,我们首先直接开发数据库更改,将其应用于现有模型的edmx模型。
对于新模型,我们首先创建edmx模型,然后生成数据库。从那时起,我们通常直接更新数据库。在我们对代码进行内部测试并正确运行之后,我们知道我们的SQL数据库是正确的(当然在签入之前),我们将通过对数据库与数据库项目进行SQL比较,将更改应用于数据库项目


这对我们来说非常有效。

我的方法是:随时随地开始,随时随地做出改变。如果一个用户喜欢在VS中更新模型,而另一个用户喜欢直接在DB中进行更改,那么让他们这样做吧。感谢您对数据库项目的有趣阅读。听起来是个不错的解决方案。我总是使用SQL Server数据库项目,将其发布到SQL Server,然后根据数据库中的模式生成edmx。