无法使用Code-First创建数据库

时间:2016-10-08 09:33:17

标签: c# wpf entity-framework-6 sql-server-2016-express

我正在使用Visual Studio 2015,Entity Framework v6和SQL Server 2016 Express。在过去,我使用SqlConnectionSqlCommand创建了一个数据库,并将SQL填入字符串。

现在,我正在Entity Framework Tutorial教自己EF6。在简单的代码优先示例(非常简单)上,我实际上复制并粘贴了我的代码,但仍然没有看到在SSMS中创建的数据库。我的代码也没有给我任何错误。

我没有粘贴代码,而是截屏。我希望有人可以指出我是什么或教程缺失。

enter image description here

[编辑] 根据Sampath的建议,我最终得到以下错误: enter image description here enter image description here

[编辑 - 已解决,有点]

我将相同的代码应用于相同设置的另一台机器并且代码有效。所以我怀疑SQL Server中存在一些损坏,或者某些注册表可能不正确。我卸载了每个SQL Server版本和相关工具,手动删除所有文件夹和文件,然后重新安装SQL Server Express 2016和工具。然后我的代码工作。

我不认为这是一个解决方案,但如果有人能够提出可能导致此问题的原因,我会尝试重新创建或发布真正的解决方案。

2 个答案:

答案 0 :(得分:2)

您必须在web.config文件上提供连接字符串名称,如下所示。

背景:

public SchoolContext(): base("MySchoolDB")
        {

        }

App.config文件

<add name="MySchoolDB" connectionString="Server=localhost; 
Database=YourDBName;Trusted_Connection=True;" providerName="System.Data.SqlClient" />

您可以在此处获取更多详细信息:Database Initialization

答案 1 :(得分:0)

您必须在配置连接字符串后向数据库添加实体,然后DBContext将创建数据库。这是一个连接字符串示例:

<add name="Name" connectionString="Data Source=.; Initial Catalog=yourdbName; Integrated Security=True; MultipleActiveResultSets=True;"
      providerName="System.Data.SqlClient" />