1

我对 Entity Framework 完全陌生,并且已经阅读了一些内容,作为测试,我将一个非常简短的测试框架组合在一起,其中只有两个小实体。然后我右键单击并选择“从模型生成数据库”,这会将我带到 SQL 连接页面。但是,我之前使用的连接都没有出现在下拉列表中,当我选择创建新连接时,我只能选择使用“SQL Server Compact 3.5”或“SQL Server 数据库文件”。

我之前使用 SQL Express 遇到过这种情况,解决方法是创建我自己的连接字符串来访问所需的数据库。但是,在我使用实体框架创建数据库的情况下,不可能编写适当的连接字符串。

因此,我似乎处于 Catch 22 的情况。

  1. 在创建数据库之前,我无法编写连接字符串。
  2. 如果不访问 SQL Server(通过连接字符串),我无法从 EF 创建数据库。

任何人都遇到过这个或者可以指出我做错了什么。就像我说的那样,我对 EF 完全陌生,所以如果这是一个非常基本的问题,我深表歉意。

4

2 回答 2

1

除非您想在用户实例中使用数据库文件,否则您需要使用 SQL Management Studio Express,或者使用 SQLCMD 命令行工具来创建数据库。我会推荐 SQL Management Studio Express,因为在我看来它很容易学习。

实体框架工具旨在用于创建数据库架构,而不是数据库本身。您仍然需要定义文件组、安全信息以及创建和配置空白数据库的其他基础知识。

有关适当链接,请参阅此 Q/A:

如何使用 SQL 命令在 SQL Express 中创建数据库?

于 2012-08-21T04:34:30.917 回答
0

感谢@psuedocoder,您的帮助帮助我解决了问题。最后的答案很简单,但对我来说并不直观,因此我遇到了困难。我认为对答案的一些详细说明可能会帮助其他与我一样对实体框架不熟悉的人。

从 Visual Studio

  1. 在 Visual Studio 中创建 EF 模型。
  2. 右键单击模型画布并选择“从模型生成数据库”。
  3. 然后会要求您选择数据库连接。选择“新连接”。
  4. 在“添加连接”对话框中,而不是“浏览”现有数据库,只需在“数据库”文本框中键入新数据库的名称,然后单击“连接”。
  5. 当您尝试连接时,您会收到一条警告说数据库不存在,但系统会询问您是否希望 VS '创建它'。选择是。

正如@psuedocoder 所说,这实际上并没有在 SQL Server 中创建数据库,但它确实在您的 VS 解决方案中创建了一个对象,其中包含创建数据库所需的 TSQL 脚本。

来自 SSMS

  1. 转到 SQL Server Management Studio 并创建一个与上述步骤 4 中使用的名称相同的空白数据库。
  2. 在 SSMS 中选择打开文件并导航到包含 VS 解决方案文件的 windows 文件夹。
  3. 打开 TSQL 脚本文件。这将有一个 DB 脚本图标并有一个 .edmx 扩展名。
  4. Click Execute, and you will have your new database created from your EF model.
于 2012-08-21T14:27:47.483 回答