Shaolinq icon indicating copy to clipboard operation
Shaolinq copied to clipboard

Bug(?): Multiple relations between the same tables with Backreference cause Exception

Open Worker3 opened this issue 7 years ago • 0 comments

Hi,

I got a dictionary with a List of words (in each Language) Translation_Entry Now I want to link them together, using a mapping table Translation_Mapping:

        [BackReference(Name= "Translation_Entry_id_Source", PrefixName = "Translation_Entry_", SuffixName = "_Source")]
        public abstract Translation_Entry AssignedSourceEntry { get; set; }
        [BackReference(Name= "Translation_Entry_id_Target", PrefixName = "Translation_Entry_", SuffixName = "_Target")]
        public abstract Translation_Entry AssignedTargetEntry { get; set; }

The Entry table defines that:

        [RelatedDataAccessObjects(name:"test1",backReferenceName: "Translation_Entry_id_Source", BackReferenceName = "Translation_Entry_id_Source")]
        public abstract RelatedDataAccessObjects<Translation_Mapping> AssignedMappingSource { get; }

        [RelatedDataAccessObjects (name: "test2", backReferenceName: "Translation_Entry_id_Target", BackReferenceName = "Translation_Entry_id_Target")]
        public abstract RelatedDataAccessObjects<Translation_Mapping> AssignedMappingTarget { get; }

If I run that, I get this Exception

   bei System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   bei Shaolinq.Persistence.TypeDescriptorProvider..ctor(Type dataAccessModelType, DataAccessModelConfiguration configuration)
   bei Shaolinq.TypeBuilding.DataAccessModelAssemblyBuilder.GetDataAccessModelAssembly(Type dataAccessModelType, DataAccessModelConfiguration configuration)
   bei Shaolinq.TypeBuilding.CachingDataAccessModelAssemblyProvider.GetDataAccessModelAssembly(Type dataAccessModelType, DataAccessModelConfiguration configuration)
   bei Shaolinq.DataAccessModel.BuildDataAccessModel(Type dataAccessModelType, DataAccessModelConfiguration configuration)
   bei Shaolinq.DataAccessModel.BuildDataAccessModel[T](DataAccessModelConfiguration configuration)

if I comment out one of the statements, it works. (its an existing Datebase, so I cannot change the Structure)

Can you help?

Btw. is there a way to purge the ID from the column, which is automatically created? (I found prefix and suffix nice, but how do I set the name of the column explicitly?)

Worker3 avatar Oct 27 '17 14:10 Worker3