최근 IQueryable에서 영감을받은 http://www.codethinked.com/keep-your-iqueryable-in-check을 사용하기 시작했습니다. 그래서 난 내 REPOS에서이 일을하는 데 사용했습니다 :IQueryable을 반환 할 때 DbContext를 처리 할시기/방법?
public IPageable<POCO> GetById(int id)
{
var ctx = new DbContext()
var query = from ...;
return new Pageable(query);
}
하지만이 new DbContext()
을 처리하는 가장 좋은 방법이 있는지 궁금 해요 :
public IEnumerable<POCO> GetById(int id)
{
using (var ctx = new DbContext())
{
var query = from ...;
return query.ToList();
}
}
지금 나는이 대신하고 있어요. 는 더 클래스 멤버
public class Repo
{
private DbContext _ctx = new DbContext();
}
심지어 주사로 DbContext
을 배치하는 것입니다 그것의 장점과 단점은 무엇
public class Repo
{
private DbContext _ctx;
public Repo(DbContext ctx)
{
_ctx = ctx;
}
}
:
- 각각의 방법에
new DbContext
가. - a 객체 당
new DbContext
(클래스 멤버). - 주입
DbContext
.
몇 가지 다른 질문을 .InRequestScope();
을 사용할 수 있습니다 Ninject에 사용하고
:
- DbContext가로 유지되는 경우 내 REPO이는 IDisposable을 구현해야 종류 회원?
- 위의 DbContext 처분을 처리하는 더 좋은 방법이 있습니까?