코드 첫 번째 EF 4.1 구현이라고 생각합니다. 데이터베이스는 이미 존재하며 기본 모델은 이미 존재합니다 (들어오는 XML 데이터 용 XSD.exe에 의해 생성됩니다). 내 자신의 매핑을 작성하고 모델이 Entity Framework에서 제대로 작동하도록 업데이트했습니다.모델 생성 중 유효성 검사 오류
나는 아래의 오류가 발생하고있어 코드를 실행하려고하면 :
One or more validation errors were detected during model generation:
System.Data.Edm.EdmEntityType: Name: Each type name in a schema must be unique. Type name 'CourtCase' is already defined.
내가 확인했는데 확인 두 배 확실히에만이 클래스는 한 위치에 정의합니다. 또한 DbContext가 자체 모델을 만들지 않도록하기 위해 아래 줄에 익숙해졌습니다.
내 XML 데이터는 내 모델로 직렬화되고 다음 단순히 데이터베이스에 저장하기 위해 노력하고있어Database.SetInitializer<LoadContext>(null);
:
var serializer = new XmlSerializer(typeof (CourtCase));
var xmlReader = new XmlTextReader(
new MemoryStream(Encoding.Default.GetBytes(_itemText)));
_deserializedCase = (CourtCase) serializer.Deserialize(xmlReader);
Database.SetInitializer<LoadContext>(null);
using (var dbContext = new LoadContext())
{
dbContext.Cases.Add(_deserializedCase);
dbContext.SaveChanges();
}
DbContext :
public class LoadContext : DbContext
{
public DbSet<CourtCase> Cases { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
modelBuilder.Configurations.Add(new CaseMap());
etc.
}
}
암의 I Entity Framework 구성의 다른 핵심 구성 요소가 누락 되었습니까?
전체 스택 추적
at System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions.ValidateAndSerializeCsdl(EdmModel model, XmlWriter writer)
at System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo)
at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)
at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)
at System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input)
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
at System.Data.Entity.Internal.Linq.InternalSet`1.ActOnSet(Action action, EntityState newState, Object entity, String methodName)
at System.Data.Entity.Internal.Linq.InternalSet`1.Add(Object entity)
at System.Data.Entity.DbSet`1.Add(TEntity entity)
컴파일 타임에 또는 런타임에 검증 오류가 언제 반환됩니까? 런타임에 코드의 어느 시점에 있습니까? 디자인 타임에 EDMX 파일을 가지고 있습니까? 아니면 즉석에서 컴파일됩니까? –