This question is locked. New answers and comments are not allowed.
Hello,
I'm getting an error (compile) when adding an Association:
The entities:
The mapping:
When commenting 1 & 2, copile is ok and the application works fine, exept the association ofcourse...
With option 1, there is an error (compile):
Object reference not set to an instance of an object.
ExceptionString:
System.NullReferenceException: Object reference not set to an instance of an object.
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.PrepareAssociations()
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.CreateModel()
at Data.FluentDataMetadataSource.CreateModel() in f:\ONTWIKKELING\TEST\FluentMappingDemo\Data\FluentDataMetadataSource.vb:line 62
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.GetModelCore(MetadataContainer old)
at Telerik.OpenAccess.Sdk.Enhancer.Enhancer.CrossDomainRunImpl(AssemblyLoader assemblyLoader)
at Telerik.OpenAccess.Sdk.Enhancer.EnhancerBase.CrossDomainRun()
With option 2, there is an error (compile):
There is no field with name 'l_itemGroup' backing 'ItemGroup' property in type 'Data.Entities.Application.Data.Commerce.Item'. You need to either change the Field Naming rules of the mapping configuration object or call HasFieldName(string) with the name of the backing field.
ExceptionString:
System.MissingFieldException: There is no field with name 'l_itemGroup' backing 'ItemGroup' property in type 'Data.Entities.Application.Data.Commerce.Item'. You need to either change the Field Naming rules of the mapping configuration object or call HasFieldName(string) with the name of the backing field.
at Telerik.OpenAccess.Metadata.Fluent.PropertyInfoHelper.GetFieldInfo(String fieldName, String propertyName, Type type)
at Telerik.OpenAccess.Metadata.Fluent.PropertyConfiguration.GetMemberType()
at Telerik.OpenAccess.Metadata.Fluent.PropertyConfiguration.AddConceptualItem(FluentMetadataSource fluentMappingSource, MetaType persistentType)
at Telerik.OpenAccess.Metadata.Fluent.MappingConfiguration.AddEntityMapping(MetadataContainer metadataContainer, MetaTable table)
at Telerik.OpenAccess.Metadata.Fluent.MappingConfiguration.AddEntityMapping(MetadataContainer metadataContainer)
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.ProcessEntities(MetadataContainer metadataContainer)
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.CreateModel()
at Data.FluentDataMetadataSource.CreateModel() in f:\ONTWIKKELING\TEST\FluentMappingDemo\Data\FluentDataMetadataSource.vb:line 62
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.GetModelCore(MetadataContainer old)
at Telerik.OpenAccess.Sdk.Enhancer.Enhancer.CrossDomainRunImpl(AssemblyLoader assemblyLoader)
at Telerik.OpenAccess.Sdk.Enhancer.EnhancerBase.CrossDomainRun()
Well, there IS a field 'l_itemGroup' backing 'ItemGroup' property in type 'Data.Entities.Application.Data.Commerce.Item' ...
Can you see something I'm missing?
Thanks a lot and a great weekend!
Erik
I'm getting an error (compile) when adding an Association:
The entities:
Namespace Entities Public Class EntityBase Implements INotifyPropertyChanged, INotifyPropertyChanging ..... End Class Namespace Application Namespace Data Namespace Commerce Public Class ItemGroup Inherits EntityBase Public Sub New() Me.Items = New List(Of Item)() End Sub Private l_ItemGroupId As Long Public Property ItemGroupId() As Long Get Return l_ItemGroupId End Get Set(ByVal value As Long) l_ItemGroupId = value End Set End Property Private l_Name As String Public Property Name() As String Get Return l_Name End Get Set(ByVal value As String) l_Name = value End Set End Property Private l_Description As String Public Property Description() As String Get Return l_Description End Get Set(ByVal value As String) l_Description = value End Set End Property Private l_Items As IList(Of Item) Public Property Items() As IList(Of Item) Get Return l_Items End Get Set(ByVal value As IList(Of Item)) l_Items = value End Set End Property End Class Public Class Item Inherits EntityBase Private l_ItemId As Long Public Property ItemId() As Long Get Return l_ItemId End Get Set(ByVal value As Long) l_ItemId = value End Set End Property Private l_Name As String Public Property Name() As String Get Return l_Name End Get Set(ByVal value As String) l_Name = value End Set End Property Private l_Description As String Public Property Description() As String Get Return l_Description End Get Set(ByVal value As String) l_Description = value End Set End Property Private l_Discontinued As Boolean? Public Property Discontinued() As Boolean? Get Return l_Discontinued End Get Set(ByVal value As Boolean?) l_Discontinued = value End Set End Property Private l_ItemGroup As ItemGroup Public Property ItemGroup() As ItemGroup Get Return l_ItemGroup End Get Set(ByVal value As ItemGroup) l_ItemGroup = value End Set End Property Private l_ItemGroupId As Long Public Property ItemGroupId() As Long Get Return l_ItemGroupId End Get Set(ByVal value As Long) l_ItemGroupId = value End Set End Property End Class End Namespace End Namespace End NamespaceEnd NamespaceThe mapping:
Protected Overrides Function PrepareMapping() As System.Collections.Generic.IList(Of Telerik.OpenAccess.Metadata.Fluent.MappingConfiguration) Dim configurations As List(Of MappingConfiguration) = New List(Of MappingConfiguration)() Dim itemGroupConfiguration As New MappingConfiguration(Of Entities.Application.Data.Commerce.ItemGroup)() itemGroupConfiguration.MapType(Function(p) New With {p}).WithConcurencyControl(OptimisticConcurrencyControlStrategy.Changed).ToTable(New TableName("ItemGroups", "Application.Data.Commerce")) itemGroupConfiguration.HasProperty(Function(f) f.ItemGroupId).IsIdentity(KeyGenerator.Autoinc).HasFieldName("l_ItemGroupId").WithDataAccessKind(DataAccessKind.ReadWrite).ToColumn("ItemGroupId").IsNotNullable().HasColumnType("bigint").HasPrecision(0).HasScale(0) itemGroupConfiguration.HasProperty(Function(f) f.Name).HasFieldName("l_Name").WithDataAccessKind(DataAccessKind.ReadWrite).ToColumn("Name").IsNullable().HasColumnType("nvarchar").HasLength(150) itemGroupConfiguration.HasProperty(Function(f) f.Name).HasFieldName("l_Description").WithDataAccessKind(DataAccessKind.ReadWrite).ToColumn("Description").IsNullable().HasColumnType("nvarchar").HasLength(250) itemGroupConfiguration.HasProperty(Function(f) f.Items).HasFieldName("l_Items") itemGroupConfiguration.FieldNamingRules.AddPrefix = "l_" configurations.Add(itemGroupConfiguration) Dim itemConfiguration As New MappingConfiguration(Of Entities.Application.Data.Commerce.Item)() itemConfiguration.MapType(Function(p) New With {p}).WithConcurencyControl(OptimisticConcurrencyControlStrategy.Changed).ToTable(New TableName("Items", "Application.Data.Commerce")) itemConfiguration.HasProperty(Function(f) f.ItemId).IsIdentity(KeyGenerator.Autoinc).HasFieldName("l_ItemId").WithDataAccessKind(DataAccessKind.ReadWrite).ToColumn("ItemId").IsNotNullable().HasColumnType("bigint").HasPrecision(0).HasScale(0) itemConfiguration.HasProperty(Function(f) f.Name).HasFieldName("l_Name").WithDataAccessKind(DataAccessKind.ReadWrite).ToColumn("Name").IsNullable().HasColumnType("nvarchar").HasLength(150) itemConfiguration.HasProperty(Function(f) f.Name).HasFieldName("l_Description").WithDataAccessKind(DataAccessKind.ReadWrite).ToColumn("Description").IsNullable().HasColumnType("nvarchar").HasLength(250) itemConfiguration.HasProperty(Function(f) f.Discontinued).HasFieldName("l_Discontinued").WithDataAccessKind(DataAccessKind.ReadWrite).ToColumn("Discontinued").IsNullable().HasColumnType("bit") itemConfiguration.HasProperty(Function(f) f.ItemGroupId).HasFieldName("l_ItemGroupId").WithDataAccessKind(DataAccessKind.ReadWrite).ToColumn("ItemGroupId").IsNotNullable().HasColumnType("bigint").HasPrecision(0).HasScale(0) itemConfiguration.HasProperty(Function(f) f.ItemGroup).HasFieldName("l_ItemGroup") itemConfiguration.FieldNamingRules.AddPrefix = "l_" 1>'itemConfiguration.HasAssociation(Function(p) p.ItemGroup).WithOpposite(Function(c) c.Items).HasConstraint(Function(p, c) p.ItemGroupId = c.ItemGroupId) 2>itemConfiguration.HasAssociation(Of Entities.Application.Data.Commerce.ItemGroup)(Function(p) p.ItemGroup).ToColumn("ItemGroupId") configurations.Add(itemConfiguration)When commenting 1 & 2, copile is ok and the application works fine, exept the association ofcourse...
With option 1, there is an error (compile):
Object reference not set to an instance of an object.
ExceptionString:
System.NullReferenceException: Object reference not set to an instance of an object.
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.PrepareAssociations()
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.CreateModel()
at Data.FluentDataMetadataSource.CreateModel() in f:\ONTWIKKELING\TEST\FluentMappingDemo\Data\FluentDataMetadataSource.vb:line 62
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.GetModelCore(MetadataContainer old)
at Telerik.OpenAccess.Sdk.Enhancer.Enhancer.CrossDomainRunImpl(AssemblyLoader assemblyLoader)
at Telerik.OpenAccess.Sdk.Enhancer.EnhancerBase.CrossDomainRun()
With option 2, there is an error (compile):
There is no field with name 'l_itemGroup' backing 'ItemGroup' property in type 'Data.Entities.Application.Data.Commerce.Item'. You need to either change the Field Naming rules of the mapping configuration object or call HasFieldName(string) with the name of the backing field.
ExceptionString:
System.MissingFieldException: There is no field with name 'l_itemGroup' backing 'ItemGroup' property in type 'Data.Entities.Application.Data.Commerce.Item'. You need to either change the Field Naming rules of the mapping configuration object or call HasFieldName(string) with the name of the backing field.
at Telerik.OpenAccess.Metadata.Fluent.PropertyInfoHelper.GetFieldInfo(String fieldName, String propertyName, Type type)
at Telerik.OpenAccess.Metadata.Fluent.PropertyConfiguration.GetMemberType()
at Telerik.OpenAccess.Metadata.Fluent.PropertyConfiguration.AddConceptualItem(FluentMetadataSource fluentMappingSource, MetaType persistentType)
at Telerik.OpenAccess.Metadata.Fluent.MappingConfiguration.AddEntityMapping(MetadataContainer metadataContainer, MetaTable table)
at Telerik.OpenAccess.Metadata.Fluent.MappingConfiguration.AddEntityMapping(MetadataContainer metadataContainer)
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.ProcessEntities(MetadataContainer metadataContainer)
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.CreateModel()
at Data.FluentDataMetadataSource.CreateModel() in f:\ONTWIKKELING\TEST\FluentMappingDemo\Data\FluentDataMetadataSource.vb:line 62
at Telerik.OpenAccess.Metadata.Fluent.FluentMetadataSource.GetModelCore(MetadataContainer old)
at Telerik.OpenAccess.Sdk.Enhancer.Enhancer.CrossDomainRunImpl(AssemblyLoader assemblyLoader)
at Telerik.OpenAccess.Sdk.Enhancer.EnhancerBase.CrossDomainRun()
Well, there IS a field 'l_itemGroup' backing 'ItemGroup' property in type 'Data.Entities.Application.Data.Commerce.Item' ...
Can you see something I'm missing?
Thanks a lot and a great weekend!
Erik