扩展EF DBContext

时间:2014-02-18 20:12:29

标签: c# .net entity-framework

我不确定我要问的是要走的路。我有一个DB第一个模型。我想为它添加某些常用方法,例如更新特定表的特定字段。

我知道我可以通过使用适当的方法创建一个类,如:

public static class MyClass
{
    public static void UpdateFieldAOfTableA(int newValue)
    {
        using(DBContext db = new DBContext())
        {
            //Update Code
            db.SaveChanges();
        }
    }
}

但是有没有办法扩展DBContext,所以我可以调用:

DBContext.UpdateFieldAOfTableA(newValue);

我尝试创建一个分部类并添加一个扩展名,例如:

public partial class DBContext
{
    public static void UpdateFieldAOfTableA(this DBContext db,int newValue)
    {
        //Update Code here
    }
}

但这显然不起作用,因为我只能扩展非泛型静态类,这不是静态的。

你认为我想做的是错的吗?你有什么想法?

1 个答案:

答案 0 :(得分:3)

由于DBContext已经被声明为部分类,因此您不需要使用扩展方法。这应该有效:

public partial class DBContext
{
    public void UpdateFieldAOfTableA(int newValue)
    {
        //Update Code here
    }
}

您现在应该可以致电DBContext.UpdateFieldAOfTableA(newValue);