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