我该如何在Visual Studio中的.NET Core 1.x控制台应用程序中使用Entity Framework Core 1.x?我尝试了来自ASP.NET MVC Core 1.x开发的工作流和命令,但是遇到了连接本地数据库的错误。
控制台应用程序中使用localdb与ASP.NET MVC Core 1.x应用程序有何不同?
背景: 我成功地多次使用ASP.NET MVC Core 1.x和Entity Framework Core 1.x,但现在需要创建一个简单的.NET Core控制台应用程序来完成一些任务(将XML加载到新数据库中,创建与XML结构大致匹配的表格)。
我使用NuGet安装了以下软件包: Microsoft.EntityFrameworkCore.Design(1.1.2) Microsoft.EntityFrameworkCore.SqlServer(1.1.2) Microsoft.EntityFrameworkCore.Tools(1.1.1)
我创建了一个带有DbSets的DbContext。我添加了一个OnConfiguring()方法,并像在网上找到的代码示例中那样硬编码了连接字符串。我的DbContext如下:
我从一个可用的ASP.NET MVC Core 1.x应用程序的appsettings.json中获取了连接字符串,将数据库名称更改为简单的内容(“MyXmlExport”)。
我能够创建一个初始迁移。
当我尝试使用我习惯的工作流程时,即调用:
我收到了以下错误信息:
“在建立与 SQL Server 的连接时发生了与网络或特定实例相关的错误。服务器未找到或无法访问。请验证实例名称是否正确,并确认 SQL Server 已配置为允许远程连接。(提供程序: SQL 网络接口,错误: 50 - 发生本地数据库运行时错误。指定的 LocalDB 实例名称无效。”
我可以通过 Sql Server 对象资源管理器连接到 localdb 实例。我尝试手动创建 MyXmlExport 数据库,希望至少能减少一个潜在问题。但似乎在控制台应用程序的上下文中使用 Visual Studio 的工具无法访问数据库。
完整的错误堆栈:
控制台应用程序中使用localdb与ASP.NET MVC Core 1.x应用程序有何不同?
背景: 我成功地多次使用ASP.NET MVC Core 1.x和Entity Framework Core 1.x,但现在需要创建一个简单的.NET Core控制台应用程序来完成一些任务(将XML加载到新数据库中,创建与XML结构大致匹配的表格)。
我使用NuGet安装了以下软件包: Microsoft.EntityFrameworkCore.Design(1.1.2) Microsoft.EntityFrameworkCore.SqlServer(1.1.2) Microsoft.EntityFrameworkCore.Tools(1.1.1)
我创建了一个带有DbSets的DbContext。我添加了一个OnConfiguring()方法,并像在网上找到的代码示例中那样硬编码了连接字符串。我的DbContext如下:
public class ApplicationDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Server=(localdb)\\mssqllocaldb;Database=MyXmlExport;Trusted_Connection=True;MultipleActiveResultSets=true");
}
public DbSet<Author> Authors { get; set; }
public DbSet<Thread> Threads { get; set; }
public DbSet<Post> Posts { get; set; }
}
我从一个可用的ASP.NET MVC Core 1.x应用程序的appsettings.json中获取了连接字符串,将数据库名称更改为简单的内容(“MyXmlExport”)。
我能够创建一个初始迁移。
当我尝试使用我习惯的工作流程时,即调用:
update-database
我收到了以下错误信息:
“在建立与 SQL Server 的连接时发生了与网络或特定实例相关的错误。服务器未找到或无法访问。请验证实例名称是否正确,并确认 SQL Server 已配置为允许远程连接。(提供程序: SQL 网络接口,错误: 50 - 发生本地数据库运行时错误。指定的 LocalDB 实例名称无效。”
我可以通过 Sql Server 对象资源管理器连接到 localdb 实例。我尝试手动创建 MyXmlExport 数据库,希望至少能减少一个潜在问题。但似乎在控制台应用程序的上下文中使用 Visual Studio 的工具无法访问数据库。
完整的错误堆栈:
@
表示你正在使用一个逐字字符串。你不应该在服务器和实例名称之间转义\
。但我并不确定这是否是你的错误。 - roryWoods