private static string DetermineKeyColumnName(IModelInspector inspector, PropertyPath member) { var otherSideProperty = member.OneToManyOtherSideProperty(); if (inspector.IsOneToMany(member.LocalMember) && otherSideProperty != null) return otherSideProperty.Name + ForeignKeyColumnPostfix; return member.Owner().Name + ForeignKeyColumnPostfix; }
protected override void OnBeforeMapOneToOne(IModelInspector modelInspector, PropertyPath member, IOneToOneMapper propertyCustomizer) { propertyCustomizer.ForeignKey(string.Format("FK_{0}_{1}", member.Owner().Name, member.ToColumnName())); }
protected override void OnBeforeMapManyToOne(IModelInspector modelInspector, PropertyPath member, IManyToOneMapper propertyCustomizer) { string foreignKeyColumnName = GetKeyColumnName(modelInspector, member); propertyCustomizer.Column(foreignKeyColumnName); propertyCustomizer.ForeignKey(string.Format("FK_{0}_{1}", member.Owner().Name, foreignKeyColumnName)); bool required = member.LocalMember .GetCustomAttributes() .OfType<RequiredAttribute>() .Any(); propertyCustomizer.NotNullable(required); }
private void DisableComponentParentAutomapping(IModelInspector inspector, PropertyPath member, IComponentAttributesMapper customizer) { var parentMapping = member.LocalMember.GetPropertyOrFieldType().GetFirstPropertyOfType(member.Owner()); DisableAutomappingFor(parentMapping); }