저는 실제로 EF를 사용하여 동일한 데이터베이스에 액세스 할 여러 저장소를 설계 할 때 로프 학습에 대한 도움을 찾고 있습니다. 각 저장소가 자신의 개인 DBContext를 가지고 있지만이 개념에 어려움을 겪고있는 예제 코드를 보았습니다. 나는이 프로젝트에서 Generic Interface에 관심이 없다.EF를 사용하여 동일한 실시간 데이터에 액세스하는 여러 리포지토리를 디자인하는 방법은 무엇입니까?
상속 된 인터페이스를 다시 사용할 수있는 단일 응용 프로그램에서 Identity
기반 (승인시) 및 범주, 항목 등과 같은 다른 작업 관련 리포지토리가 여러 개인 인터페이스가 필요하므로 여러 DbContext
인스턴스가 필요합니다.
SQL에서 트랜잭션을 커밋하거나 롤백 할 수있는 트랜잭션이 있으므로 EF에서 여러 repos가 동일한 (실시간) 데이터에 액세스합니까? 더 나은 질문은 하나의 응용 프로그램이 많은 직업 관련 리포지토리를 상속 받기를 원할 때 DAL을 어떻게 디자인해야 하는가하는 것입니다.
jgauffin는 뜻 했는가, 이 무엇을 의미하는지
"저장소가 100 % 완전한 추상화가 있는지 확인"?
다음은 내가 알아 내려고 시도하는 간단한 예입니다. 이 연습이 합리적입니까?
public class OneRepo: IRepository, IDisposable
{
private DbContext context = new DbContext();
// Methods and whatnot...
}
그리고 두 번째 저장소는 OneRepo에서 동일한 db 연결을 필요로하지만 별도의 메모리 단위 작업 단위가 있다고 생각합니까? 내 질문에 잘 기록되어 있지 않은 경우
public class AnotherRepo: IRepository, IDisposable
{
private DbContext context = new DbContext();
// Methods and whatnot...
}
나는 죄송합니다. 나는 실제로 게시하는 것이 상대적으로 새로운데, 내가 스스로를 분명하게하는지 확신 할 수 없다. 나는 일반적으로 일반적인 저장소를 좋아하지 않으며 역할 인터페이스 패턴을 사용하여 권한 및/또는 사용자 작업을 기반으로 저장소를 만들고 싶다고 이미 결정했습니다. 설명하는 도움을 주시면 대단히 감사하겠습니다!
실시간 데이터 란 무엇입니까? 그리고 다른 DBContext를 사용하는 문제는 어디에 있다고 생각합니까? – Euphoric
여러 컨트롤러에 대해 컴파일 할 때 여러 DBContext 인스턴스를 실행하면 데이터 무결성이 손상 될 수 있다는 생각이 들지 않는다는 것을 의미하지는 않습니다.하지만 변경 사항을 생각하기에 바보 같을 수도 있습니다. 데이터베이스에 저장됩니다. – yardpenalty
우리가 자원을 효과적으로 사용하고 있는지 확인하기 위해 Unit Of Work 또는 Unit of Work가 채택 된 이유가 아닙니까? – yardpenalty