代码之家  ›  专栏  ›  技术社区  ›  Bob Tabor

通过.Net核心控制台应用程序从Entity Framework Core 1.x连接到localdb

  •  5
  • Bob Tabor  · 技术社区  · 7 年前

    在控制台应用程序中使用localdb与在ASP中使用localdb有何不同。NET MVC Core 1.x应用程序?

    出身背景

    已成功使用ASP。有几次,我需要创建一个简单的.NET Core控制台应用程序来完成一些繁重的工作(将XML加载到一个新的数据库中,创建与XML结构松散匹配的表)。

    • Microsoft.EntityFrameworkCore。设计(1.1.2)
    • Microsoft.EntityFrameworkCore。SqlServer(1.1.2)

    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应用程序的应用程序设置。json,将数据库名称更改为简单的名称(“MyXmlExport”)。

    我能够创建一个初始迁移。

    当我尝试使用我习惯的工作流时,即调用:

    update-database
    

    我可以通过Sql Server对象浏览器连接到localdb实例。我尝试手动创建MyXmlExport数据库,希望这至少可以减少一个潜在问题。但在控制台应用程序的上下文中使用Visual Studio的工具时,似乎无法访问数据库。

    完整错误堆栈:

    Full error stack

    2 回复  |  直到 5 年前
        1
  •  8
  •   roryWoods    7 年前

    @ 表示您正在使用逐字字符串文字。你不应该逃避 \

        2
  •  0
  •   Richard Moore    7 年前

    我不知道这对鲍勃是否有帮助,但我会考虑以下几点:

    尝试停止LocalDb实例-使用

    SqlLocalDb i 
    

    然后试试看

    SqlLocalDb stop <INSTANCE NAME>
    

    看看这是否有任何影响。

    可能没有关系,但我还是会把它放在这里,如果您在SSMS中附加了LocalDb MDF,那么当您分离MDF时,SSMS将丢弃MDF上的文件权限,这意味着您可能需要在分离后重置MDF和LDF文件上的权限。就像我说的-听起来这不是问题,但可能会引发你的思维模式。