Database.EnsureCreated無法正常工作

c# entity-framework-core

我正在玩下面列出的Entity Framework 7版本

"EntityFramework.Core": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

我的DatabaseContext類非常簡單

public class WorldContext : DbContext
{
    public DbSet<Trip> Trip { get; set; }
    public DbSet<Stop> Stop { get; set; }

    public WorldContext()
    {
        Database.EnsureCreated();
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        var connectionString = Startup.Configuration["Data:WorldContextConnection"];

        optionsBuilder.UseSqlServer(connectionString);
        base.OnConfiguring(optionsBuilder);
    }
}

我在構造函數中遇到Database.EnsureCreated方法時遇到問題。據我所知,這個方法應該確保數據庫在不存在的情況下被創建,否則它應該什麼都不做。當我通過我的DatabaseContext類代碼調試時,我點擊了在Database.EnsureCreated方法上設置的斷點,當執行繼續時,斷點被第二次命中(這不是預期的),因此DatabaseContext構造函數由於某種原因輸入了兩次。在第二次命中時拋出以下異常

在此處輸入圖像描述

即使數據庫存在, EnsureCreated方法也不應該忽略它嗎?我在這裡錯過了什麼嗎?

一般承認的答案

不要調用在構造函數中創建的確保,但在應用啟動期間調用一次



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow