나는 microorm으로 PetaPoco와 함께 .Net에서 N 계층 솔루션을 가지고 있습니다. PetaPoco의 템플릿 생성기에서 생성 된 엔티티를 얻습니다. 이 엔티티 T
은 기본 클래스 Record<T>
에서 파생됩니다. 그런 다음 데이터 액세스 기능을 추가하고 Save()
및 Delete()
메서드를 추가하여 Record<T>
기본 메서드를 재정의합니다..net 일반 저장소 문제 petapoco
엔티티 (이 방법은 내가 전화를 걸) 나는 일반 저장소를 만들 때
public partial class Document : Record<Document>
{
public new int Delete()
{
int rowsAffected;
using (var uow = DB.GetInstance().GetTransaction())
{
rowsAffected = base.Delete();
LogSystem("Deleting", "Deleting a document", 0, 0, GUID);
uow.Complete();
}
return rowsAffected;
}
}
그런 다음 호출하기 방법은 기본 클래스 Record<T>
아니라 내 사용자 지정 것들 출신의 오버라이드 Delete
방법은 다음과 엔티티에서 entityRepository.Delete()
메서드를 호출하면 내 엔터티의 Delete()
메서드가 호출되고 기본 Record<T>
클래스의 메서드가 호출되지 않아야합니다.
일반 저장소 클래스는 follwos과 같습니다
public abstract class GenericRepository<T> : IGenericRepository<T> where T : Record<T>, new()
{
public void Delete(T entity)
{
entity.Delete();
}
}
가 DapperExtensions 내 대답을 참조하십시오. PetaPoco를 사용하더라도 다른 것들은 비슷해야합니다. https://stackoverflow.com/a/45460483/5779732 –
안녕하세요, 답장을 보내 주셔서 감사합니다. 이미이 질문을 살펴 봤지만 엔티티의 우선 적용 메소드를 호출하는 방법에 대한 답변은 제공하지 않습니다. 기본 클래스. 또한 UoW 패턴을 통합하는 방법을 알지 못합니다. 사용하는 것이 좋지만 PetaPoco 트랜잭션인데, 위와 같이 사용해야하는지 모릅니다. –
또한 어떤 디자인 입력을 찾고 있어요 –