1

是否可以擴展實體框架6.1.3生成的類?如何擴展一個實體框架6.1.3生成的類?

我有一個現有的數據庫,我已經創建了一個ADO.NET實體數據模型,而這個數據模型又是Visual Studio 2015生成的一組類。

public partial class WebApplication1Entities : DbContext 
{ 
    public WebApplication1Entities() 
     : base("name=WebApplication1Entities") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 
} 

我可以手動覆蓋WebApplication1Entities允許動態運行時連接像這樣:

public WebApplication1Entities(string connectionString) : base(connectionString) 
    { 
    } 

然而,這涉及編輯認爲的Visual Studio 2015年已生成的類,但我想更新在未來的ADO.NET實體數據模型中,Visual Studio將覆蓋我對之前生成的類所做的任何手動更改,並且我回到了原來的狀態,必須手動編輯生成的類。

是否可以創建一個輔助類或類似的東西來擴展現有的WebApplication1Entities : DbContext,並允許添加新的重載方法,並且還可以繼承Visual Studio 2015生成的類的現有方法,如虛擬DbSets。

任何幫助將當您在聲明

public partial class WebApplication1Entities : DbContext 

這個類是partial看到非常感激:-)

+0

因爲它是一個部分類,你在哪裏放置「手動更改」 - 你把它們放在生成的同一個文件中,還是放在單獨的文件中? –

回答

2

所以,你可以創建另一個* .cs文件,把你的代碼中有(使用相同的命名空間!):

public partial class WebApplication1Entities 
{ 
    public WebApplication1Entities(string connectionString) : base(connectionString) 
    { 
    }   
} 

所以當設計師覆蓋包含「原生態」類的文件,你的代碼保持不變。

Morepartial類和方法。

+0

我簡直不敢相信那麼簡單,非常感謝,完美的作品:-) – iggyweb