Visual Studio 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的任何建议?
好的,这真的让我花了一些时间。。。我至少是现在才知道是什么原因造成的,以及解决方法。
解决方案中有一个项目,这是我的数据访问层。即使我在包管理器控制台中选择了该项目,它还是在顶层创建了一个空白应用程序配置。由于该app.config中没有连接字符串标记,因此它默认为localdb,最终出错。
因此,为了解决这个问题,我将连接字符串从数据访问库项目app.config复制到主项目app.config,一切开始正常工作。不知道为什么为什么要转到主项目文件,但是它是...我稍后必须回到此内容,但它现在可以正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句