在实体框架代码优先中,为啥我不能在连接字符串中使用 SQL Server Express?

Posted

技术标签:

【中文标题】在实体框架代码优先中,为啥我不能在连接字符串中使用 SQL Server Express?【英文标题】:In Entity Framework code-first, why can't I use SQL Server Express in the connection string?在实体框架代码优先中,为什么我不能在连接字符串中使用 SQL Server Express? 【发布时间】:2014-08-24 23:46:18 【问题描述】:

我正在使用代码优先方法构建我的第一个 ASP.NET MVC 应用程序。

当我从以下位置更改默认连接字符串的“数据源”时:

Data Source=(LocalDb)\v11.0

Data Source=.\Sqlexpress

我遇到了一个错误,包含以下内容:

存在同名数据库,或指定文件无法打开,或位于 UNC 共享上。

当我恢复对“数据源”所做的更改时,它起作用了。

为什么会这样?我必须一直使用这个数据源吗?

【问题讨论】:

你的完整连接字符串是什么? 停止附加文件,使用类似:“Data Source=.\SqlExpress;Initial Catalog=DBName;Integrated Security=True;MultipleActiveResultSets=True”。否则请阅读此post 【参考方案1】:

尝试删除本地数据库并让代码先创建它。该消息非常明确,您必须指示 EF 创建IfNotExists。

【讨论】:

问题不是每次都创建数据库,而是我必须在数据源中使用 '(LocalDb)\v11.0' 而不是使用我想要的(例如 .\SqlExpress) 尝试删除本地db,让代码先创建。 然后看这个:***.com/questions/15318843/…

以上是关于在实体框架代码优先中,为啥我不能在连接字符串中使用 SQL Server Express?的主要内容,如果未能解决你的问题,请参考以下文章

实体框架代码优先:在具有不同连接列的实体中展平组合

实体框架代码的动态连接字符串首先在运行时 EF6(mssql、mysql、oracle)中用于多个数据库提供程序

使用实体框架、代码优先和 CRUD 操作的存储库模式

禁用实体框架的默认值生成(代码优先)

连接字符串 EF 代码优先

实体框架核心关系问题(代码优先) - 重复列