public ITypeHandler <T1, T2> OneToMany() { _persistentAssemblyBuilder = GetPersistentAssemblyBuilder(); var type1 = typeof(T1); var type2 = typeof(T2); var type1Name = getName(type1); var type2Name = getName(type2); var classHandler = _persistentAssemblyBuilder.CreateClasses(new[] { type1Name, type2Name }); classHandler.CreateReferenceMembers(info => info.Name == type2Name ? new[] { info.PersistentAssemblyInfo.PersistentClassInfos[0] } : null, true); createTypes(type1, type2, _persistentAssemblyBuilder, type1Name, type2Name); return(this); }
public ITypeHandler <T1, T2> ManyToMany() { PersistentAssemblyBuilder persistentAssemblyBuilder = GetPersistentAssemblyBuilder(); var type1 = typeof(T1); var type2 = typeof(T2); var type1Name = getName(type1); var type2Name = getName(type2); var classHandler = persistentAssemblyBuilder.CreateClasses(new[] { type1Name, type2Name }); IPersistentAssemblyInfo persistentAssemblyInfo = persistentAssemblyBuilder.PersistentAssemblyInfo; var persistentClassInfo1 = persistentAssemblyInfo.PersistentClassInfos[0]; var persistentClassInfo2 = persistentAssemblyInfo.PersistentClassInfos[1]; classHandler.CreateCollectionMember(persistentClassInfo1, type2Name + "s", persistentClassInfo2); classHandler.CreateCollectionMember(persistentClassInfo2, type1Name + "s", persistentClassInfo1, type2Name + "s"); createTypes(type1, type2, persistentAssemblyBuilder, type1Name, type2Name); return(this); }