将实体上下文传递给类构造函数

时间:2013-12-20 17:16:30

标签: c# asp.net entity-framework

我仍然是Entity Framework的新手,所以我还在研究一些基础知识。我有一个数据访问层正在完成大部分繁重的工作。但是,当我学习EF和上下文时,我意识到维护一个上下文是多么重要,特别是当你试图更新实体对象实例的子代时。所以我的计划是在前端创建上下文并将其传递到数据层。

前端:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        supplyEntities ctx = new supplyEntities();
        GroupsClass gc = new GroupsClass(ctx);
     }
}

数据层:

public class GroupsClass
{
    private supplyEntities context;

    public GroupsClass(supplyEntities ctx)
    {
        context = ctx;
    }

    public List<group> GetAllGroups()
    {
        context.do stuff;
    }
}

“字段初始化程序无法引用非静态字段,方法或属性”时出错。我错过了什么?或者,我应该以不同的方式这样做吗?

1 个答案:

答案 0 :(得分:1)

错误很奇怪,因为它讲述了静态方法中发生的事情。在静态方法中运行时,不能使用实例级成员,这是该错误的含义。您可以粘贴报告错误的确切代码吗?

除了错误之外,还有一条建议。不要在前端创建数据上下文。这意味着前端与上下文不可逆转地联系在一起。没有办法模仿它,没有办法自动测试它,没有办法用任何其他实现替换它等。