c# - 代码优先更新数据库使用未指定的 localdb 连接字符串
问题描述
视觉工作室 2019,C#
我正在研究我的第一个代码优先实现。
我构建了一个效果很好的数据访问层。然后我去添加/测试数据迁移。
我创建了一个迁移文件,然后转到包管理器控制台并运行:
更新数据库
长时间的停顿后,我看到一条消息,上面写着:
Target database is: 'OMDB' (DataSource: (localdb)\mssqllocaldb, Provider: System.Data.SqlClient, Origin: Convention).
OMDB 是我的模型。但是,我并没有在我的 app.config 中将其指向 localDB,而是指向 sqlexpress:
….
<connectionStrings>
<add name="OMDB" connectionString="data source=.\SQLEXPRESS;initial catalog=MyDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value ="data source=.\SQLEXPRESS;initial catalog=MyDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"/>
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
…
为了构建数据访问层,我必须在类构造函数中添加一个覆盖以加载连接字符串:
public OMDB(string szConnectionString) : base(szConnectionString)
{ }
但我认为这与我的问题无关......
我将默认项目设置为数据访问层项目 (DAL),我还尝试在 update-database 行上强制执行该项目:
update-database -Verbose -ProjectName DAL
我在我的解决方案中对 localDB 进行了全局搜索,但没有找到任何结果,所以我不知道它从哪里得到使用 localdb 作为源的想法......?
关于它在哪里为这个连接拉起 localDB 的任何建议?
解决方案
我设法通过以下步骤解决了这个问题。
- 在 Visual Studio 中将您的网站项目(其中
web.config
有)设置为默认/启动项目connectionStrings
- 确保 connectionString 指向实际的数据库实例
- 根据您的需要运行
Enable-Migrations
或在包管理器控制台中Enable-Migrations -Force
成功创建 InitialModel 后,您应该会收到如下消息:
使用数据库初始化程序创建的检测到的数据库。与现有数据库对应的脚手架迁移“202102050903200_InitialCreate”。要改用自动迁移,请删除 Migrations 文件夹并重新运行 Enable-Migrations 并指定 -EnableAutomaticMigrations 参数。
推荐阅读
- r - R循环用于显示多个数据帧中最丰富的行
- api - 如何从按键获取执行的命令
- javascript - 有人可以解释一下这个“while”循环吗?(重复和变量)
- python - OSError:[Errno -9996] 尝试在 Windows 中使用 pyaudio 录制音频时输入设备无效(无默认输出设备)
- oracle - 哪些非 4.* .NET 应用程序版本与 Standard 兼容?
- regex - 如何在 java 中不能包含数字的单词上使用正则表达式?
- python - Pandas - 在数字上插入逗号
- c# - Removing a row for a DataRowCollection doesn't work
- simics - 未找到 Simics Eclipse。请安装包1001
- json - SyntaxError:位置 107 处的 JSON 中的意外数字