如果我不能在静态中使用datacontext

时间:2010-04-18 21:46:02

标签: c#-3.0

我有这个

public static class MyClassHelper
{
  DataContex db = new DataContext();

  public static Type MyMethod()
  {
    //Do Something with db
    // such as db.myTable
  }
}

我收到以下错误:“非静态字段,方法或属性需要对象引用...

有没有解决这个问题?

这个怎么样?我有一个只包含整数的对象,这对所有内部函数都很好,因为它允许我链接表。但偶尔,我需要向用户显示一些信息。这就是为什么,我想创建一个静态方法,以便它读取整数,在数据库中查找,并显示一个名称而不是数字。

我希望它是一个静态方法,以便我可以在我的View模板中使用它。

感谢您的帮助

3 个答案:

答案 0 :(得分:9)

由于@Oskar表明你的静态方法不能引用实例变量,只能引用静态变量。但是,不要将DataContext设置为静态,这意味着它将在程序的生命周期中存在,只需在方法中根据需要创建DataContext。 DataContext最适合“工作单元”模式,并根据需要重新创建,而不是作为长期存在的对象存在。请注意,DataContext不是线程安全的;除非你让所有方法都是线程安全的,否则你将创建一些非常难以找到的错误。重新创建数据上下文要简单得多。

答案 1 :(得分:2)

静态方法只能看到静态成员。另外,静态类只能有静态成员。您应该将数据库标记为静态:

static DataContext db = new DataContext(); 

答案 2 :(得分:0)

是的。您还需要将DataContext声明为静态。