0

我在Application Start處創建數據庫時遇到錯誤,而完全相同的代碼在所有其他項目中工作得非常好。在Startup.csDatabase.EnsureCreated處出現堆棧溢出異常EF 7 ASP.NET 5 MVC 6

啓動功能

public Startup(IHostingEnvironment env) 
{ 
    // Set up configuration sources. 
    var builder = new ConfigurationBuilder() 
      .AddJsonFile("appsettings.json") 
      .AddEnvironmentVariables(); 

    if (env.IsDevelopment()) 
    { 
     // This will push telemetry data through Application Insights pipeline faster, allowing you to view results immediately. 
      builder.AddApplicationInsightsSettings(developerMode: true); 
    } 
    Configuration = builder.Build(); 
    Globals.Configuration = Configuration; 
    Globals.HostingEnvironment = env; 
    Globals.EnsureDatabaseCreated(); 
} 

Globals.EnsureDatabaseCreated()

public static void EnsureDatabaseCreated() 
    { 
     var optionsBuilder = new DbContextOptionsBuilder(); 
     if (HostingEnvironment.IsDevelopment()) optionsBuilder.UseSqlServer(Configuration["Data:dev:DataContext"]); 
     else if (HostingEnvironment.IsStaging()) optionsBuilder.UseSqlServer(Configuration["Data:staging:DataContext"]); 
     else if (HostingEnvironment.IsProduction()) optionsBuilder.UseSqlServer(Configuration["Data:live:DataContext"]); 
     var context = new ApplicationContext(optionsBuilder.Options); 
     context.Database.EnsureCreated(); 

     optionsBuilder = new DbContextOptionsBuilder(); 
     if (HostingEnvironment.IsDevelopment()) optionsBuilder.UseSqlServer(Configuration["Data:dev:TransientContext"]); 
     else if (HostingEnvironment.IsStaging()) optionsBuilder.UseSqlServer(Configuration["Data:staging:TransientContext"]); 
     else if (HostingEnvironment.IsProduction()) optionsBuilder.UseSqlServer(Configuration["Data:live:TransientContext"]); 
     new TransientContext(optionsBuilder.Options).Database.EnsureCreated(); 
    } 

ApplicationContext.cs

public class ApplicationContext : DbContext 
{ 
    public DbSet<Models.Security.User> Logins { get; set; } 
    public DbSet<Models.Security.Session> Sessions { get; set; } 
    public DbSet<Models.Security.Verification> VerificationTokens { get; set; } 

    public DbSet<Models.CRM.User> Users { get; set; } 
    public DbSet<Models.CRM.Organization> Merchants { get; set; } 
    public DbSet<Models.CRM.LinkedAddress> Shops { get; set; } 
    public DbSet<Models.CRM.ContactDetail> ContactDetails { get; set; } 
    public DbSet<Models.CRM.Location> Locations { get; set; } 

    public ApplicationContext(DbContextOptions options) : base(options) 
    { 
    } 
} 

錯誤截圖

enter image description here

+0

可能是一個錯誤,如https://github.com/aspnet/EntityFramework/issues/3799。另外,http://stackoverflow.com/help/no-one-answers。在問題上開始賞金是吸引更多注意力並獲得答案的好方法。 – natemcmaster

回答

0

等待了兩天的答案後,不幸的是我結束了創建一個新的項目和複製代碼,而它的工作。看起來像一個配置問題。

注意:由於我沒有收到任何答案,我將此標記爲正確答案。如果用戶未來有分享他們的觀點,我會很樂意標記他們的答案,如果它爲未來的讀者增加了一些價值。