我有一些模型类继承自单个抽象类,而抽象类又派生自 BaseEntity
公共抽象类项目:BaseEntity
当我尝试在我的上下文中创建实体数据模型时,我收到以下错误:System.Reflection.TargetInvocationException:调用目标已引发异常。---> System.Data.Entity.ModelConfiguration.ModelValidationException:在模型生成过程中检测到一个或多个验证错误:
DataLayer.EntityAspect: : EntityType 'EntityAspect' 没有定义键。定义此 EntityType 的键。DataLayer.EntityKey: : EntityType 'EntityKey' 没有定义键。定义此 EntityType 的键。DataLayer.MetadataStore: : EntityType 'MetadataStore' 没有定义键。定义此 EntityType 的键。DataLayer.Validator: : EntityType 'Validator' 没有定义键。定义此 EntityType 的键。DataLayer.DataType: : EntityType 'DataType' 没有定义键。定义此 EntityType 的键。DataLayer.StructuralType: : EntityType 'StructuralType' 没有定义键。定义此 EntityType 的键。DataLayer.ValidationError: : EntityType 'ValidationError' 没有定义键。定义此 EntityType 的键。DataLayer.ValidationContext: : EntityType ' ValidationContext' 没有定义键。定义此 EntityType 的键。DataLayer.StructuralProperty: : EntityType 'StructuralProperty' 没有定义键。定义此 EntityType 的键。EntityAspects: EntityType: EntitySet 'EntityAspects' 基于没有定义键的类型'EntityAspect'。EntityKeys: EntityType: EntitySet 'EntityKeys' 基于没有定义键的类型'EntityKey'。MetadataStores:EntityType:EntitySet 'MetadataStores' 基于没有定义键的类型'MetadataStore'。Validators: EntityType: EntitySet 'Validators' 基于没有定义键的类型'Validator'。DataTypes:EntityType:EntitySet 'DataTypes' 基于没有定义键的类型'DataType'。结构类型:EntityType:EntitySet ' StructuralTypes' 基于没有定义键的类型'StructuralType'。ValidationErrors:EntityType:EntitySet 'ValidationErrors' 基于没有定义键的类型'ValidationError'。ValidationContexts:EntityType:EntitySet 'ValidationContexts' 基于没有定义键的类型'ValidationContext'。StructuralProperties:EntityType:EntitySet 'StructuralProperties' 基于没有定义键的类型'StructuralProperty'。没有定义键。StructuralProperties:EntityType:EntitySet 'StructuralProperties' 基于没有定义键的类型'StructuralProperty'。没有定义键。StructuralProperties:EntityType:EntitySet 'StructuralProperties' 基于没有定义键的类型'StructuralProperty'。
在 System.Data.Entity.Core.Metadata.Edm.EdmModel.Validate() 在 System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo) 在 System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection) 在System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) 在 System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input) 在 System.Data.Entity.Internal.LazyInternalContext.InitializeContext() 在 System. Data.Entity.Internal.LazyInternalContext.get_ModelBeingInitialized() 在 System.Data.Entity.Infrastructure.EdmxWriter.WriteEdmx(DbContext context, XmlWriter writer) --- 内部异常堆栈跟踪结束 --- 在 System.RuntimeMethodHandle.InvokeMethod(Object目标、Object[] 参数、签名 sig、布尔构造函数)在 System.System.RuntimeType 中的 Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfoculture)。 Microsoft.DbContextPackage.Handlers.ViewContextHandler.ViewContext(MenuCommand menuCommand, Object context, Type 的 InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] 修饰符, CultureInfoculture, String[] namedParams)系统上下文类型)Microsoft.DbContextPackage.Handlers.ViewContextHandler.ViewContext(MenuCommand menuCommand, Object context, Type 的 InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] 修饰符, CultureInfoculture, String[] namedParams)系统上下文类型)Microsoft.DbContextPackage.Handlers.ViewContextHandler.ViewContext(MenuCommand menuCommand, Object context, Type 的 InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] 修饰符, CultureInfoculture, String[] namedParams)系统上下文类型)
如果我删除 BaseEntity 继承并创建实体数据模型,它会成功完成。BaseEntity 做了什么来破坏我的模型?
现实世界的问题是,当我尝试从 DataService.Metadata() 调用返回元数据时,它也会遇到此错误。
任何想法如何解决这个问题?
谢谢