내 프로젝트에서 감사 기능을 구현하기 위해 Z.EntityFramework.Plus 패키지를 사용하고 있습니다. 나는 DB 접근법을 따르고 있는데, 여기에 설명 된 것처럼 두 개의 감사 테이블을 만든 쿼리를 실행한다. .edmx 파일을 업데이트함으로써 새로운 DB 세트를 얻는다.
public virtual DbSet<AuditEntries> AuditEntries { get; set; }
public virtual DbSet<AuditEntryProperties> AuditEntryProperties { get; set; }
이제 감사 내역을 검색하고 싶습니다. Z.EntityFramework.Plus 네임 스페이스에서 Where
확장 메소드를 사용합니다.
var auditlog = AuditExtensions.Where<TbAdditions>(oContext.AuditEntries, id).ToList();
하지만 컴파일러는 자신이 캐스팅 할 수없는, 나를 밖으로 소리입니다 DBset<AuditEntry>
에 DBSet<AuditEntries>
같이 Where
정의가 필요 DbSet<AuditEntry>
하지, DbSet<AuditEntries>
, 나는 이름을 변경해야합니다 표?
면책 조항 : 저는 Entity Framework Plus 프로젝트의 소유자입니다.
현재 사용자 정의 클래스 AuditEntries
및 AuditEntryProperties
DB 첫 번째 접근 방식을 사용하고 AuditEntryProperties
. 따라서 Z.EntityFramework.Plus 라이브러리에서 제공하는 AuditEntry 클래스 및 AuditEntryProperty
클래스 AuditEntry
코드 우선을 사용하지 않습니다.
확장 메서드는 라이브러리에서 제공하는 클래스에 대해 만들어 졌으므로 클래스와 호환되지 않습니다.
이 소스에서 발견 된 동일한 확장 메소드를 사용자 측에서 구현해야합니다. DbSet`AuditEntry.cs
아마도 더 많은 확장 방법이 필요할 것입니다.
감사 기능은이 기능과 같은 확장 성을 허용하기 위해 여름 동안 완전히 다시 코딩되어야합니다.
편집 : 답변을 하위 질문
그것을 구현하는 방법?
다음은이를 구현하는 예제입니다. https://gist.github.com/mshwf/af017b50ceb2994d953762ef2b20386d