4
내 응용 프로그램에 각각 자체 datacontext 개체가있는 2 개의 리포지토리가 있습니다.LINQ2SQL을 사용하여 ASP.NET MVC의 다양한 모델 리포지토리에서 데이터 컨텍스트 공유
최종 결과는 하나의 저장소에서 검색된 개체를 다른 저장소에서 검색된 개체에 연결하려고 시도하여 예외가 발생합니다.
내 응용 프로그램에 각각 자체 datacontext 개체가있는 2 개의 리포지토리가 있습니다.LINQ2SQL을 사용하여 ASP.NET MVC의 다양한 모델 리포지토리에서 데이터 컨텍스트 공유
최종 결과는 하나의 저장소에서 검색된 개체를 다른 저장소에서 검색된 개체에 연결하려고 시도하여 예외가 발생합니다.
사용 생성자 삽입 각 저장소에 DataContext를 주입합니다 : 이것은 당신이 공유하거나하지 방법이 필요 쪽의 DataContext를 공유 할 수 있습니다
public class MyRepository : IMyRepository
{
private readonly DataContext dataContext;
public MyRepository(DataContext dataContext)
{
if(dataContext == null)
{
throw new ArgumentNullException("dataContext");
}
this.dataContext = dataContext;
}
// implement MyRepository using this.dataContext;
}
.
왜 "당신이 공유하거나 DataContext를 공유하지 못하게 할 것"이라고 말하는 경우 ArgumentNullException이 발생합니까? 나는 단지 이해하려고 노력하고있다. 고마워. –
가드 절은 클래스의 불변성을 보장합니다. 그것은 당신이 할 수있는 DataContext를 공유 할 수 있는지 여부와 관련이 없습니다. –
감사 마크. 내가 올바르게 이해했다면, 제안 된 솔루션에 여분의 생성자가 있기 때문에 각 컨트롤러마다 하나의 DataContext가 필요할 것입니다. @ 마크 시맨, 다시 한번 감사드립니다! 나는 많은 mvc 패턴을 읽고 마침내 나는이 대답을 가지고 있다고 생각한다. O) –