DbContext和Generics

时间:2011-06-27 17:30:26

标签: c# entity-framework generics entity-framework-4.1

使用DataContext我可以做类似

的事情
public IQueryable<T> All()
{
   return db.CreateObjectSet<T>().AsQueryable();
}

(作为通用存储库类的一部分 - 其余的CRUD操作以类似的方式处理)

我想看看DbContext是否可以实现这一点:即可以返回一个可查询的T?条目看起来有点像它可能会有所帮助,但不完全......想法有人吗?

2 个答案:

答案 0 :(得分:4)

DbSet实施IQueryable

这应该有效:

public IQueryable All()
{
    return db.Set<T>();
}

答案 1 :(得分:3)

如果您希望返回一个Queryable,则类似于:

public virtual IQueryable GetAll()
{
    return dbContext.Set<T>();
}

事实上,我前段时间写过关于如何使用EF4.1创建通用存储库的博客 看一看:

http://davidandersonlino.net/blog/2011/04/28/generic-repository-pattern-com-entity-framework-4-1/

希望我回答你的问题。