我有这个
public static class MyClassHelper
{
DataContex db = new DataContext();
public static Type MyMethod()
{
//Do Something with db
// such as db.myTable
}
}
我收到以下错误:“非静态字段,方法或属性需要对象引用... ”
有没有解决这个问题?
这个怎么样?我有一个只包含整数的对象,这对所有内部函数都很好,因为它允许我链接表。但偶尔,我需要向用户显示一些信息。这就是为什么,我想创建一个静态方法,以便它读取整数,在数据库中查找,并显示一个名称而不是数字。
我希望它是一个静态方法,以便我可以在我的View模板中使用它。
感谢您的帮助
答案 0 :(得分:9)
由于@Oskar表明你的静态方法不能引用实例变量,只能引用静态变量。但是,不要将DataContext设置为静态,这意味着它将在程序的生命周期中存在,只需在方法中根据需要创建DataContext。 DataContext最适合“工作单元”模式,并根据需要重新创建,而不是作为长期存在的对象存在。请注意,DataContext不是线程安全的;除非你让所有方法都是线程安全的,否则你将创建一些非常难以找到的错误。重新创建数据上下文要简单得多。
答案 1 :(得分:2)
静态方法只能看到静态成员。另外,静态类只能有静态成员。您应该将数据库标记为静态:
static DataContext db = new DataContext();
答案 2 :(得分:0)
是的。您还需要将DataContext声明为静态。