C# 带存储过程的Linq到Sql

C# 带存储过程的Linq到Sql,c#,asp.net-mvc,linq-to-sql,C#,Asp.net Mvc,Linq To Sql,我试图在dbml中使用存储过程,但我得到以下错误。存储过程有多个联接表,但它返回一行 public static List<SP_EMP_MASTER_DETAILResult> GetEmployeeDetail(string userName, string userLocation) { var query = (from q in db.SP_EMP_MASTER_DETAIL(userLocation, userName) sele

我试图在dbml中使用存储过程,但我得到以下错误。存储过程有多个联接表,但它返回一行

public static List<SP_EMP_MASTER_DETAILResult> GetEmployeeDetail(string userName, string userLocation)
{
    var query = (from q in db.SP_EMP_MASTER_DETAIL(userLocation, userName)
                 select new SP_EMP_MASTER_DETAILResult { ID = q.EMP_ID, Name = q.EMP_NM }).ToList();
    return query;
}
公共静态列表GetEmployeeDetail(字符串用户名、字符串用户位置)
{
var query=(来自db.SP\u EMP\u MASTER\u详细信息中的q(userLocation,userName)
选择new SP_EMP_MASTER_DETAILResult{ID=q.EMP_ID,Name=q.EMP_NM});
返回查询;
}
这是一个错误

非静态字段、方法或属性“Tiger.Models.HomeRepository.db”需要对象引用


你的方法是静态的。。。db变量也是静态的吗?不能在静态方法中引用非静态类成员

不能使用静态方法和属性 访问中的非静态字段和事件 它们的包含类型,并且它们不能 访问任何类型的实例变量 对象,除非显式传递它 在方法参数中


from

@Hoorayo:不。在你努力理解这一点之前,你不能使用任何东西。linq到sql、列表或IQueryable都没有问题。您已将您的方法设置为“静态”,但您的变量db不是静态的,不能用于静态方法。Timwi绝对正确。让我先弄清楚,尽管这对我来说听起来很复杂。@Hoorayo:我爱你!要是所有的初学者都是这样就好了:)是的,我只是一个月大的C#初学者,所以你的任何帮助都会很好。我想我不应该使用static,因为db变量不是静态的。