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

时间:2017-02-10 13:48:34

标签: c# entity-framework visual-studio-2015 entity-framework-6

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

非常感谢任何帮助: - )

1 个答案:

答案 0 :(得分:3)

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

public partial class WebApplication1Entities : DbContext

此课程为partial

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

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

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

More关于partial类和方法。