【发布时间】:2020-11-12 10:51:13
【问题描述】:
我正在开发 Visual Studio Code,并添加了 EntitiyFramework.Design、EntitiyFramework.SqlServer 包。
但是,当我使用我的 UseSqlServer() 时,我收到如下错误消息。
{
optionsBuilder
.UseLoggerFactory(MyLoggerFactory)
.UseSqlServer(@"Data Source=(localdb)/MSSQLLocalDB;Initial Catalog=ShopDb;Integrated Security=SSPI;");
}
我的错误信息如下:
我还删除了我的 Microsoft.EntityFrameworkCore.SqlServer 包 --version 5.0.0,然后添加了它的 --version 3.1.3。然而这个问题并没有解决。
我分享了我的 ConsoleApp.csproj 如下:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.3" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="5.0.0" />
</ItemGroup>
</Project>
因此,我无法运行我的 .UseSqlServer() 方法。
我的连接字符串错了吗?
我应该怎么做才能解决它?
谢谢。
【问题讨论】:
-
ADO.NET 连接字符串不受使用它们的库的影响。 EF 只是一个在底层使用 ADO.NET 的库。服务器实例名称使用
\而不是/。正确的实例名称是(localdb)\MSSQLLocalDB。在连接字符串中,您应该转义反斜杠Data Source=(localdb)\\MSSQLLocalDB -
BTW 发布错误消息,而不是错误消息图像的链接。您可以在控制台窗口中选择文本并复制它。发布您使用的实际命令和实际错误,而不是屏幕截图
标签: c# sql-server entity-framework-core ado.net