Exemple #1
0
        /// <summary>
        /// Generates the name of a foreign key column according the relationship property and the Id property
        /// </summary>
        /// <param name="relationshipProperty">The relationship property</param>
        /// <param name="idProperty">The target entity Id property</param>
        /// <returns>The generated column name</returns>
        public string ToForeignKeyColumnName(MemberInfo relationshipProperty, MemberInfo idProperty)
        {
            string result = null;

            switch (namingConventions.ForeignKeyColumnNamingConvention)
            {
            case ForeignKeyColumnNamingConvention.Default: result = ToColumnName(relationshipProperty); break;

            case ForeignKeyColumnNamingConvention.PropertyNameIdPropertyName: result = ToColumnName(string.Concat(relationshipProperty.Name, idProperty.Name)); break;

            case ForeignKeyColumnNamingConvention.PropertyName_IdPropertyName: result = string.Format(ConventionFormats.RelationshipUnderscoreSeparated, ToColumnName(relationshipProperty), ToColumnName(idProperty)); break;

            case ForeignKeyColumnNamingConvention.Custom:
            {
                if (namingConventions.ForeignKeyColumnCustomNamingConvention == null)
                {
                    throw new ConfigurationErrorsException(string.Format(ExceptionMessages.CustomConventionNotFound, typeof(ForeignKeyColumnNamingConvention).Name));
                }

                result = namingConventions.ForeignKeyColumnCustomNamingConvention(relationshipProperty, idProperty);
            }; break;
            }

            return(result);
        }