如何扩展Entity Framework 6.1.3生成的类?

是否可以扩展Entity Framework 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 ,并允许添加新的重载方法,并inheritanceVisual Studio 2015生成的类的现有方法,如虚拟DbSets。

任何帮助将非常感激 :-)

正如你在宣言中看到的那样

 public partial class WebApplication1Entities : DbContext 

这个class是partial

因此,您可以创建另一个* .cs文件并将代码放在那里(使用相同的命名空间!):

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

因此,当设计者覆盖包含“原始”类的文件时,您的代码保持不变。

有关partial类和方法的更多信息。