2017-06-23 9 views
0

我有現有的數據庫。然後新的需求來了更多的表,所以我創建了模型和使用代碼的第一種方法來生成現有的數據庫表。EF代碼首先與現有的數據庫導致許多已知的錯誤

但是當我運行命令

Enable-Migrations -ContextTypeName ListHell.CODE.flagen -force 

我得到錯誤

創建DbModelBuilder或使用數據庫優先或模型首次創建的DbContext 寫EDMX不支持。 EDMX只能從不使用現有DbCompiledModel的 創建的Code First DbContext獲取EDMX 。

我已經檢查了所有與之相關的答案上的SO,但都是沒用的,我的情況

我的DbContext類

public partial class flagen:DbContext 
{ 
    public flagen() : base("name=LH_newEntities") 
    { 
    } 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 

    public virtual DbSet<flag> flags { get; set; } 
} 

thanksfor幫助

+0

什麼答案?他們爲什麼沒用?如果錯誤信息是準確的,則沒有其他答案。也許你在同一個項目中混合了Db-First和Code-First上下文嗎? –

+0

@PanagiotisKanavos一個答案說刪除_migrationhistory並刪除migraition文件夾,然後再試一次我沒有這樣的結果。其他完全一樣。 – Alex

+0

錯誤與模型優先上下文有關。不遷移歷史。 * *你有模型優先還是數據優先優先?錯誤是否準確?爲什麼你的班級*部分*? –

回答

0

我共享連接字符串codefirst和dbfirst。原來這是行不通的。我創建了新的連接字符串及其作品。解決