protected override void OnBeforeMapClass(IModelInspector modelInspector, Type type, IClassAttributesMapper classCustomizer) { classCustomizer.DynamicInsert(DynamicInsert); classCustomizer.DynamicUpdate(DynamicUpdate); classCustomizer.Table(GetTableName(modelInspector, type)); classCustomizer.Id( m => { m.Column(GetKeyColumnName(modelInspector, type, false)); m.Generator(Generators.HighLow); }); if (modelInspector.IsTablePerClassHierarchy(type)) { classCustomizer.Discriminator(m => m.Column(GetDiscriminatorColumnName(modelInspector, type))); classCustomizer.DiscriminatorValue(GetDiscriminatorValue(modelInspector, type)); } MemberInfo[] versionProperties = VersionProperties(modelInspector, type).ToArray(); if (versionProperties.Length == 1) { classCustomizer.Version(versionProperties[0], m => m.Column(GetVersionColumnName(modelInspector, type))); } }
public void Apply(Type subject, IClassAttributesMapper applyTo) { var className = subject.Name; if (Array.IndexOf(enumsNames, className) >= 0) { applyTo.DiscriminatorValue(EnumUtil.ParseGettingUnderlyingValue(typeof(TEnum), className)); } else if (indexOfUnknow >= 0) { applyTo.DiscriminatorValue(EnumUtil.ParseGettingUnderlyingValue(typeof(TEnum), enumsNames[indexOfUnknow])); } else { throw new ArgumentException("Canot find the discriminator value for the class " + subject.FullName + " using the enum " + typeof(TEnum).FullName); } }
private void DisciminatorValueAsClassName(IModelInspector modelInspector, Type type, IClassAttributesMapper classCustomizer) { if (DiscriminatorIsNotRequired(type)) return; classCustomizer.DiscriminatorValue(type.Name); }
protected override void OnBeforeMapClass(IModelInspector modelInspector, Type type, IClassAttributesMapper classCustomizer) { classCustomizer.DynamicInsert(DynamicInsert); classCustomizer.DynamicUpdate(DynamicUpdate); classCustomizer.Table(GetTableName(modelInspector, type)); classCustomizer.Id( m => { m.Column(GetKeyColumnName(modelInspector, type, false)); m.Generator(Generators.HighLow); }); if (modelInspector.IsTablePerClassHierarchy(type)) { classCustomizer.Discriminator(m => m.Column(GetDiscriminatorColumnName(modelInspector, type))); classCustomizer.DiscriminatorValue(GetDiscriminatorValue(modelInspector, type)); } MemberInfo[] versionProperties = VersionProperties(modelInspector, type).ToArray(); if (versionProperties.Length == 1) { classCustomizer.Version(versionProperties[0], m => m.Column(GetVersionColumnName(modelInspector, type))); } }