EntityFramework.Plus : 모델 생성 중에 하나 이상의 유효성 검사 오류가 감지되었습니다.

c# entity-framework entity-framework-6 entity-framework-plus

문제

EF6 코드 첫 번째 프로젝트에서 EntityFramework.Plus의 감사 기능을 사용하고 있습니다. 다음 코드를 추가하면 :

public virtual DbSet<AuditEntry> AuditEntries { get; set; }

public virtual DbSet<AuditEntryProperty> AuditEntryProperties { get; set; }

static EntityContext()
   {
            AuditManager.DefaultConfiguration.AutoSavePreAction = (context, audit) =>
            {
                var Entities = context as EntityContext;
                if (Entities != null)
                {
                    Entities.AuditEntries.AddRange(audit.Entries);
                }
                else throw new InvalidOperationException($"Context is null for {context.Database.Connection}");
            };
        }

다음과 같은 오류가 발생합니다.

모델 생성 중에 하나 이상의 유효성 검사 오류가 감지되었습니다. \ r \ n \ r \ nWebsite.Core.Entities.Audit :: EntityType '감사'에 키가 정의되어 있지 않습니다. 이 EntityType에 대한 키를 정의하십시오. \ r \ n 감사 : EntityType : EntitySet '감사'는 키가 정의되지 않은 '감사'유형을 기반으로합니다. \ r \ n ","예외 유형 ":"System.Data.Entity.ModelConfiguration. ModelValidationException "

오류는 내 프로젝트에서 엔티티가 아닙니다. 위의 코드를 제거하면이 오류가 제거됩니다.

누구든지 도와 줄 수 있습니까? 외부 라이브러리 유형에 대한 모델 유효성 검사를 억제 할 수 있습니까?

미리 감사드립니다.

HS

전문가 답변

면책 조항 : 저는 Entity Framework Plus 의 소유자입니다.

오류보고 :

EntityType '감사'에 정의 된 키가 없습니다.

매핑되지 않아야하는 Audit 엔티티도 매핑 한 것 같습니다.

이와 비슷한 줄이 있다면 EntityContext를보고 제거하십시오.

public virtual DbSet<Audit> Audits { get; set; }

답변 하위 질문

우리는 라이브러리에 Audit 클래스를 가지고 있지만 컨텍스트에 나타나게하려면 매핑해야합니다 (우리가 원하지 않는). 이 문제는 디버그하는 것이 당신이 유일한 문제이기 때문에 꽤 어렵습니다.

새 프로젝트와 현재 프로젝트에서 다음 코드를 사용해 볼 수 있습니까? 두 경우 모두 문제없이 작동해야합니다.

가능한 경우 자세한 정보를 제공하여 문제를 재현 해보십시오.

public virtual DbSet<Audit> Audits { get; set; }



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.