Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将实体上下文传递到类构造函数中_C#_Asp.net_Entity Framework - Fatal编程技术网

C# 将实体上下文传递到类构造函数中

C# 将实体上下文传递到类构造函数中,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我对实体框架还是有点陌生,所以我仍在学习一些基础知识。我有一个数据访问层,负责大部分繁重的工作。然而,当我学习EF和上下文时,我意识到维护一个上下文是多么重要,尤其是当您试图更新实体对象实例的子对象时。因此,我的计划是在前端创建上下文并将其传递到数据层 前端: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { supplyEntities ctx = new supp

我对实体框架还是有点陌生,所以我仍在学习一些基础知识。我有一个数据访问层,负责大部分繁重的工作。然而,当我学习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;
    }
}
公共类组类
{
私人供应实体背景;
公共组类别(供应实体ctx)
{
上下文=ctx;
}
公共列表GetAllGroups()
{
语境。做事情;
}
}

它在“字段初始值设定项无法引用非静态字段、方法或属性”上显示错误。我错过了什么?或者,我应该用另一种方式来做吗?

这个错误在某种意义上是奇怪的,因为它告诉我们在静态方法中发生了什么。在静态方法内运行时不能使用实例级成员,这就是此错误的含义。你能粘贴报告错误的确切代码吗


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

如果双击错误,它会带你去哪里?我看不出你是如何从你展示的代码中得到这个错误的……这个代码看起来不像是会抛出一个错误。可能是在某种情况下,它在您的
GroupsClass
上查找空构造函数。当我在pageload中创建GroupsClass实例时,错误发生在ctx上。哪个方法是静态的?我没有将任何方法定义为显式静态。这是我的问题:哪个方法是静态的?因此,错误发生在静态代码中。报告错误的确切行是什么?我理解您不在前端创建数据上下文的原因。实际上,我在整个项目中都没有这样做。然而,我只是遇到了太多上下文不匹配的问题,并试图在所有实体对象数据类之间处理这些问题,这似乎让生活变得更轻松。我可以创建一个只包含一个属性的上下文创建类。然后我创建了该类的一个实例,并使用该实例传递到其他类中…当我在pageload中创建GroupsClass的实例时,错误发生在ctx上。没关系,现在正在漫游-这是编译时错误还是运行时错误?这个问题让我发痒,因为看起来我也遗漏了一些东西。