Hi,
We`ve wanted to convert our project to work with XAF 8.3.4 but we cannot launch our application. Maybe it`s because we use System.Data.DataRelationCollection in our code?
Could you give us some workaround?
Thanks
Actual Results:
The error occured:
Type: ArgumentException
Message: The "System.Data.DataRelationCollection" type declared with the DefaultProperty value of "Table" doesn't contain this property or the property is declared as private
Data: 0 entries
Stack trace:
w DevExpress.ExpressApp.DC.TypesInfo.CalcDefaultMember(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.get_OwnMembers()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.get_OwnMembers()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.get_OwnMembers()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.get_OwnMembers()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RefreshMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RefreshInfo(ITypeInfo info)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterEntity(Type entityType)
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterType(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.FindTypeInfo(Type type)
w DevExpress.ExpressApp.DC.XafMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.XafMemberInfo.DevExpress.ExpressApp.DC.IMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterType(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.FindTypeInfo(Type type)
w DevExpress.ExpressApp.DC.XafMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.XafMemberInfo.DevExpress.ExpressApp.DC.IMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.get_OwnMembers()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterType(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.FindTypeInfo(Type type)
w DevExpress.ExpressApp.DC.XafMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.XafMemberInfo.DevExpress.ExpressApp.DC.IMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RefreshMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RefreshInfo(ITypeInfo info)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterEntity(Type entityType)
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RefreshMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RefreshInfo(ITypeInfo info)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterEntity(Type entityType)
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RefreshMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RefreshInfo(ITypeInfo info)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterEntity(Type entityType)
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterType(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.FindTypeInfo(Type type)
w DevExpress.ExpressApp.DC.XafMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.XafMemberInfo.DevExpress.ExpressApp.DC.IMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.get_OwnMembers()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterType(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.FindTypeInfo(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.InitBaseTypeInfo(TypeInfo typeInfo, ITypeInfoSource source)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterType(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.FindTypeInfo(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.InitBaseTypeInfo(TypeInfo typeInfo, ITypeInfoSource source)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterType(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.FindTypeInfo(Type type)
w DevExpress.ExpressApp.DC.XafMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.XafMemberInfo.DevExpress.ExpressApp.DC.IMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.get_OwnMembers()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.FindMember(String name)
w DevExpress.ExpressApp.DC.TypeInfo.FindMember(String name)
w DevExpress.ExpressApp.DC.Xpo.XpoTypeInfoSource.EnumMembers(TypeInfo info, EnumMembersHandler handler)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembers(TypeInfo typeInfo, ITypeInfoSource source)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.FindMember(String name)
w DevExpress.ExpressApp.DC.TypeInfo.FindMember(String name)
w DevExpress.ExpressApp.DC.Xpo.XpoTypeInfoSource.EnumMembers(TypeInfo info, EnumMembersHandler handler)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembers(TypeInfo typeInfo, ITypeInfoSource source)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.FindMember(String name)
w DevExpress.ExpressApp.DC.TypeInfo.FindMember(String name)
w DevExpress.ExpressApp.DC.Xpo.XpoTypeInfoSource.EnumMembers(TypeInfo info, EnumMembersHandler handler)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembers(TypeInfo typeInfo, ITypeInfoSource source)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.get_OwnMembers()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RefreshMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RefreshInfo(ITypeInfo info)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterEntity(Type entityType)
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterType(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.FindTypeInfo(Type type)
w DevExpress.ExpressApp.DC.XafMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.XafMemberInfo.DevExpress.ExpressApp.DC.IMemberInfo.get_MemberTypeInfo()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.InitMembersInfo(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypeInfo.NeedAllMembers()
w DevExpress.ExpressApp.DC.TypeInfo.get_OwnMembers()
w DevExpress.ExpressApp.DC.TypesInfo.EnsureReferencesForEntity(TypeInfo typeInfo)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterType(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.FindTypeInfo(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.InitBaseTypeInfo(TypeInfo typeInfo, ITypeInfoSource source)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterType(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.FindTypeInfo(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.InitBaseTypeInfo(TypeInfo typeInfo, ITypeInfoSource source)
w DevExpress.ExpressApp.DC.TypesInfo.RegisterType(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.FindTypeInfo(Type type)
w DevExpress.ExpressApp.DC.TypesInfo.RefreshInfo(Type type)
InnerException is null
Hello Lukasz,
Thank you for reporting the issue and the log file you attached. Yeah, it seems to be the cause of the problem. The TypesInfo class cannot identify the default member for the System.Data.DataRelationCollection.
Could you please clarify for what real business scenario, and in which context you are using this type in XAF? A small example, as well as a description of your scenario would be very helpful for us to find a solution for you.
Thanks,
Dennis
Hi,
We use some classes that inherits from DataSet. This classes contains some collections of type DataRelationCollection. We use this types to populate XafReport with data and other WinForms that we create from controllers.
Thanks
Hello Lukasz,
Thank you for the update. I have checked the DataRelationCollection class in the Reflector. It should have the Table property as the default one. However, for some reason, it doesn't have this property even in its descendants. I have only found a private "table" field in one of the descendant classes.
I think that the fact that you have received an error message is our fault, because generally we do not calculate default members for "non-our" classes and should do that only for our persistent classes.
We are working on this issue and will fix it ASAP.
Thank you for your patience,
Dennis
Hi,
Thank you for fixing this bug. When can we expect the Public Fix for 8.3.5?
Hello Lukasz,
Thank you for the update on this, and please accept our apologies for the delay in providing you with a public fix. We will publish it once we have our internal builds tested and passed, because we cannot provide you with a broken build. It may require some time, because this will be a daily build.
Thanks,
Dennis