【发布时间】:2011-10-02 17:25:12
【问题描述】:
在过去的几个月里,我学到了很多关于 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”??)
【问题讨论】:
标签: c# linq-to-entities dao 3-tier