代码之家  ›  专栏  ›  技术社区  ›  smarty

从WebJob获取现有数据库项导致“存在同名数据库”

  •  0
  • smarty  · 技术社区  · 9 年前

    我对一个正在工作的Azure WebApp(其中所有内容都在一个项目中)进行了更改,以便在我的解决方案中具有以下结构:

    项目.数据

    • 使用上下文、CRUD操作的数据层代码

    Project.WebApp

    • 控制器和视图
    • 调用数据层

    Project.WebJob

    • 调用数据层

    在项目中。WebJob我试图通过项目中的数据层进行简单的数据库查找。但是我得到了这个错误:

    {“尝试为文件E:\Dev\xxx\WebApp\Project.WebJob\bin\Debug\Dashboard.mdf附加自动命名数据库失败。存在同名数据库,或无法打开指定文件,或该文件位于UNC共享上。”}

    仪表板错误消息中指定的路径上不存在mdf。当然,数据库存在于我的本地数据库服务器上。 webjob应该从已经存在的数据库中获取,而不是创建新的数据库 .

    在项目中。WebJob的应用程序。配置I定义连接字符串

    <add name="dbserver" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDBFilename=|DataDirectory|\Dashboard.mdf;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
    

    这与Project相同。WebApp的web.config。

    <

    public class DataContext : DbContext
        {
            public DbSet<Tenant> Tenants { get; set; }
            public DbSet<Region> Regions { get; set; }
            public DbSet<Instance> Instances { get; set; }
            public DbSet<Plan> Plans { get; set; }
            public DbSet<Industry> Industries { get; set; }
    
            public DataContext() : base("dbserver")
            {
                Database.SetInitializer<DataContext>(null);
            }
    
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
            }
        }
    
    1 回复  |  直到 9 年前
        1
  •  1
  •   Henk Holterman    9 年前

    我通过将连接字符串更改为

    <add name="dbserver" 
         connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Integrated Security=SSPI;Initial Catalog=dashboard;" 
         providerName="System.Data.SqlClient" />
    

    这将连接到SQL server和所有项目的同一数据库。