public void SetCompositeRole(IRelationType relationType, IObject role) { this.AssertNotDeleted(); if (role == null) { this.RemoveCompositeRole(relationType); return; } RoleAssertions.CompositeRoleChecks(this, relationType.RoleType, role); switch (relationType.Multiplicity) { case Multiplicity.OneToOne: this.session.SetCompositeRoleOneToOne(this.objectId, relationType.RoleType, role.Id); return; case Multiplicity.ManyToOne: this.session.SetCompositeRoleManyToOne(this.objectId, relationType.RoleType, role.Id); return; default: throw new Exception("Unsupported multiplicity " + relationType.Multiplicity); } }
public virtual void RemoveCompositeRole(IRelationType relationType) { this.AssertExist(); RoleAssertions.CompositeRoleChecks(this, relationType.RoleType); this.Roles.RemoveCompositeRole(relationType.RoleType); }
public virtual void RemoveCompositeRoles(IRelationType relationType) { this.AssertExist(); RoleAssertions.CompositeRoleChecks(this, relationType.RoleType); var previousRoles = this.Roles.GetCompositesRole(relationType.RoleType); foreach (var previousRole in previousRoles) { this.Roles.RemoveCompositeRole(relationType.RoleType, this.Session.State.GetOrCreateReferenceForExistingObject(previousRole, this.Session).Strategy); } }
public virtual void RemoveCompositeRoles(IRelationType relationType) { this.AssertExist(); var roleType = relationType.RoleType; RoleAssertions.CompositeRoleChecks(this, roleType); var previousRoles = this.Roles.GetCompositeRoles(roleType); foreach (var previousRole in previousRoles) { this.Roles.RemoveCompositeRole(roleType, this.SqlSession.GetOrCreateAssociationForExistingObject(previousRole).Strategy); } }
public virtual void SetCompositeRole(IRelationType relationType, IObject newRoleObject) { if (newRoleObject == null) { this.RemoveCompositeRole(relationType); return; } this.AssertExist(); RoleAssertions.CompositeRoleChecks(this, relationType.RoleType, newRoleObject); var newRoleObjectId = (Strategy)newRoleObject.Strategy; this.Roles.SetCompositeRole(relationType.RoleType, newRoleObjectId); }
public void RemoveCompositeRole(IRoleType roleType) { this.AssertNotDeleted(); RoleAssertions.CompositeRoleChecks(this, roleType); switch (roleType.RelationType.Multiplicity) { case Multiplicity.OneToOne: this.session.RemoveCompositeRoleOneToOne(this.objectId, roleType); return; case Multiplicity.ManyToOne: this.session.RemoveCompositeRoleManyToOne(this.objectId, roleType); return; default: throw new Exception("Unsupported multiplicity " + roleType.RelationType.Multiplicity); } }