This question is locked. New answers and comments are not allowed.
Have exception when map dictionary frome base class:
Code:
Telerik.OpenAccess.Exceptions.MetadataException was unhandled HResult=-2146233088 Message=Mapping for field '<Details>k__BackingField' is specified in the file 'config', but the field is not present in the class 'MyNamespace.Class'. --> FromMetadataContainer/namespace[MyNamespace]/class[Class]/field[<Details>k__BackingField] Source=Telerik.OpenAccess CanRetry=true ClassName=MyNamespace.Class Column=0 Context=--> FromMetadataContainer/namespace[MyNamespace]/class[Class]/field[<Details>k__BackingField] ErrorId=2 FieldName=<Details>k__BackingField FileName=config IsWarning=false Line=0 StackTrace: в Telerik.OpenAccess.SPI.Backends.ThrowException(Exception e) в OpenAccessRuntime.ExceptionWrapper.Throw() в OpenAccessRuntime.storagemanager.StorageManagerFactoryBuilder.createSmfForURL() в OpenAccessRuntime.storagemanager.StorageManagerFactoryBuilder.createStorageManagerFactory() в OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.execute() в OpenAccessRuntime.DataObjects.tools.ant.SchemaMigrationTask.execute() в OpenAccessRuntime.OpenAccessSchemaAdapter.CreateUpdateDDLScript(SchemaUpdateProperties schemaUpdateProps) в OpenAccessRuntime.SchemaHandlerImpl.Telerik.OpenAccess.ISchemaHandler.CreateUpdateDDLScript(SchemaUpdateProperties props) в MyNamespace.DataModelContext.UpdateSchema() в c:\PAGGIT\testProj\ForTests\Program.cs:строка 95 в MyNamespace.Programm.Main() в c:\PAGGIT\testProj\ForTests\Program.cs:строка 20 в System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) в System.Threading.ThreadHelper.ThreadStart() InnerException: protected override IList<MappingConfiguration> PrepareMapping() { List<MappingConfiguration> preparedConfigs = new List<MappingConfiguration>(); //Маппинг базового класса MappingConfiguration<BasicDataBaseItem> basicDataBaseItemConfiguration = new MappingConfigurationWithNamingRules<BasicDataBaseItem>(); basicDataBaseItemConfiguration.MapType(p => new { UniqID = p.UniqID, Name = p.Name, Description = p.Description, CreateDateTime = p.CreateDateTime, UpdateDateTime = p.UpdateDateTime }).Inheritance(InheritanceStrategy.Horizontal); basicDataBaseItemConfiguration.HasProperty(p => p.Name).IsNotNullable(); basicDataBaseItemConfiguration.HasProperty(p => p.CreateDateTime).IsCalculatedOn(DateTimeAutosetMode.Insert); basicDataBaseItemConfiguration.HasProperty(p => p.UpdateDateTime).IsCalculatedOn(DateTimeAutosetMode.InsertAndUpdate); MappingConfiguration<Class> classConfiguration = new MappingConfiguration<Class>(); classConfiguration.MapType(p => new { UniqID = p.UniqID, ParentClassID = p.ParentClassID, }).ToTable("Class"); classConfiguration.MapType().ToTable("Class"); classConfiguration.HasProperty(p => p.UniqID).IsIdentity().ToColumn("UniqID"); classConfiguration.HasAssociation(p => p.ParentClass).HasConstraint((p, c) => p.ParentClassID == c.UniqID); classConfiguration.HasProperty(p => p.Details).WithDictionaryKey("Key", "nvarchar(255)").WithDictionaryValue("Value", "nvarchar(Max)").WithForeignKey("ClassId", "uniqueidentifier").WithTable("ClassDetails"); preparedConfigs.Add(basicDataBaseItemConfiguration); preparedConfigs.Add(classConfiguration); return preparedConfigs; }public abstract class BasicDataBaseItem { public Guid UniqID { get; set; } public string Name { get; set; } public string Description { get; set; } public DateTime CreateDateTime { get; set; } public DateTime UpdateDateTime { get; set; } public IDictionary<string, string> Details { get; set; }}public class Class : BasicDataBaseItem{ public Class ParentClass { get; set; } public IList<Class> ChildClasses { get; set; } public Guid? ParentClassID { get; set; } public Guid UniqID { get; set; } public Class() { ChildClasses = new List<Class>(); }}