在过去的几个月里,我学到了很多关于 Linq-To-Entities 和带有 DAO/DAL/Repository 的 3 层架构的知识。现在我脑子里有一些事情一直困扰着我。我有这三个问题,您将在下面看到。
有很多方法可以使存储库工作,但是使存储库以性能方式工作的“方法”是什么。
1)在构造函数中初始化一个数据上下文
public class Repository : IRepository
{
private Datacontext context;
public Repository()
{
context = new Datacontext();
}
public IList<Entity> GetEntities()
{
return (from e in context.Entity
select e).ToList();
}
}
2)使用“使用”
public class Repository : IRepository
{
public IList<Entity> GetEntities()
{
using (Datacontext context = new Datacontext())
{
return (from e in context.Entity
select e).ToList();
}
}
}
3)以另一种方式(请评论)
我会把你的建议放在这里供其他人评论
此外,似乎有些人说存储库应该向业务层返回一个 IQueryable,而另一些人则说最好返回一个 IList。您对此有何看法?
第一个问题中的上述代码示例都指向Repository,但是在businesslayer中实现repository的最佳方法是什么(在构造函数中初始化,使用“Using”??)