C# &引用;需要对象引用才能访问非静态字段“;

C# &引用;需要对象引用才能访问非静态字段“;,c#,sql,linq,wcf,C#,Sql,Linq,Wcf,我的WCF服务实现中有这段代码,我得到了这个错误 : 如何正确更新用户的位置?代码如下: public void UpdateLocation(string usrName, double usrLong, double usrLat) { var result = (from usr in DataClasses1DataContext.Users where usr.usrName == usrN

我的WCF服务实现中有这段代码,我得到了这个错误 :

如何正确更新用户的位置?代码如下:

public  void UpdateLocation(string usrName, double usrLong, double usrLat)
        {

            var result = (from usr in DataClasses1DataContext.Users
                          where usr.usrName == usrName
                          select usr).Single();
            result.usrLong = usrLong;
            result.usrLat = usrLat;
            DataClasses1DataContext.SubmitChanges();}

错误消息告诉您所有您需要知道的信息,
Users
属性不是静态的,但您正在按原样调用它。您需要一个
DataClasses1DataContext
的实例来从以下位置调用属性:

using(DataClasses1DataContext context = new DataClasses1DataContext())
{
   var result = (from usr in context.Users
                          where usr.usrName == usrName
                          select usr).Single();
}
正如伊恩提到的

public  void UpdateLocation(string usrName, double usrLong, double usrLat)
{
    using(DataClasses1DataContext Usercontext = new DataClasses1DataContext())
    {
        var result = (from usr in Usercontext.Users where usr.usrName == usrName select usr).Single();

        result.usrLong = usrLong;
        result.usrLat = usrLat;

        Usercontext.SubmitChanges();
   }
}

投反对票的人!尽管Ian的答案是正确的,OP还是通过创建一个user实例对他的答案添加了一条评论,让他明白我添加了这个答案!
public  void UpdateLocation(string usrName, double usrLong, double usrLat)
{
    using(DataClasses1DataContext Usercontext = new DataClasses1DataContext())
    {
        var result = (from usr in Usercontext.Users where usr.usrName == usrName select usr).Single();

        result.usrLong = usrLong;
        result.usrLat = usrLat;

        Usercontext.SubmitChanges();
   }
}