将LINQ to Entity查询分为不同的方法

时间:2011-05-16 09:11:21

标签: linq linq-to-sql linq-to-entities

希望能够在下面执行此类操作。但是我有一个问题,因为GetStudentByName方法不知道什么类型的数据。

我能写下“data = data.Where(s => s.name ==”some name“);”没有任何问题。但是我如何将其划分为不同的方法呢?

    private IQueryable GetStudents()
    {
        var data = from a in db.Anvandning
                   select a;
        return data;
    }
    public IQueryable GetStudentByName(string name) 
    {
        var data = GetStudents();

        data = data.Where(s => s.name == name);     <-- Error occurs
        return data;
    }

1 个答案:

答案 0 :(得分:1)

您需要使用IQueryable<T>代替IQueryable,例如

private IQueryable<Student> GetStudents()
{
    var data = from a in db.Anvandning
               select a;
    return data;
}

public IQueryable<Student> GetStudentByName(string name) 
{
    var data = GetStudents();

    data = data.Where(s => s.name == name);
    return data;
}

请注意,可以更简单地编写这些方法:

private IQueryable<Student> GetStudents()
{
    return db.Anvandning.Select(x => x);
}

public IQueryable<Student> GetStudentByName(string name) 
{
    return GetStudents().Where(s => s.name == name);
}