对抽象到存储库类的实体执行查询

时间:2012-03-08 22:58:45

标签: entity-framework

我有一个Visual Studio 2008 C#.NET 3.5项目,使用适用于MySQL v6.4.4的ADO.Net驱动程序。

我目前对我的存储库有一个查询,如下所示:

TaskEntities repository = /* derived from global::System.Data.Objects.ObjectContext */

var task_query = from task in repository.TaskSet
                 from tc in task.TestCases
                 where tc.Status.Count == 0
                 orderby task.Order
                 select task;

foreach (Task task in task_query.ToList())
{
    // do useful stuff...
}

这很好用,但我需要能够抽象出数据库访问。因此,我想将TaskEntities替换为仍然允许查询的Repository类。像这样:

public class Repository : IDisposable
{
    private TaskEntites repository_;

    // ...

    // is this remotely correct?
    public Task[] Query(System.Linq.Expressions.Expression<Func<Task, bool>> query)
    {
        return repository_.TaskSet.Where(query).ToArray();
    }
}

Repository repository;
var task_query = repository.Query( ??? );

foreach (Task task in task_query)
{
    // do useful stuff ....
}

我需要做什么才能通过Repository类查询数据库。 Query()应该接受Linq.Expressions.Expression个对象吗?怎么样?

0 个答案:

没有答案