예제 #1
0
        protected virtual string WriteFieldMList(string fileName, DiffTable table, MListInfo mListInfo, DiffTable relatedTable)
        {
            string        type;
            List <string> fieldAttributes;

            if (mListInfo.TrivialElementColumn == null)
            {
                type            = GetEntityName(relatedTable);
                fieldAttributes = new List <string> {
                    "NotNullable"
                };
            }
            else
            {
                string relatedEntity = GetRelatedEntity(relatedTable, mListInfo.TrivialElementColumn);
                type = GetFieldType(relatedTable, mListInfo.TrivialElementColumn, relatedEntity);

                fieldAttributes = GetFieldAttributes(relatedTable, mListInfo.TrivialElementColumn, relatedEntity, isMList: true).ToList();
            }

            var preserveOrder = GetPreserveOrderAttribute(mListInfo);

            if (preserveOrder != null)
            {
                fieldAttributes.Add(preserveOrder);
            }

            string primaryKey = GetPrimaryKeyAttribute(relatedTable);

            if (primaryKey != null)
            {
                fieldAttributes.Add(primaryKey);
            }

            string tableName = GetTableNameAttribute(relatedTable.Name, mListInfo);

            if (tableName != null)
            {
                fieldAttributes.Add(tableName);
            }

            string backColumn = GetBackColumnNameAttribute(mListInfo.BackReferenceColumn);

            if (backColumn != null)
            {
                fieldAttributes.AddRange(backColumn);
            }

            StringBuilder sb = new StringBuilder();

            string fieldName = GetFieldMListName(table, relatedTable, mListInfo);

            WriteAttributeTag(sb, fieldAttributes);
            sb.AppendLine("[NotNullValidator, NoRepeatValidator]");
            sb.AppendLine("public MList<{0}> {1} {{ get; set; }} = new MList<{0}>();".FormatWith(type, fieldName.FirstUpper()));

            return(sb.ToString());
        }
        protected virtual string GetPreserveOrderAttribute(MListInfo mListInfo)
        {
            if(mListInfo.PreserveOrderColumn == null)
                return null;

            var parts = new List<string>();

            parts.Add("\"" + mListInfo.PreserveOrderColumn.Name  +"\"");

             Type type = GetValueType(mListInfo.PreserveOrderColumn);

            parts.AddRange(GetSqlDbTypeParts(mListInfo.PreserveOrderColumn, type));

            return @"PreserveOrder({0})".FormatWith(parts.ToString(", "));
        }
        protected virtual string GetTableNameAttribute(ObjectName objectName, MListInfo mListInfo)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("TableName(\"" + objectName.Name + "\"");
            if (objectName.Schema != SchemaName.Default)
                sb.Append(", SchemaName = \"" + objectName.Schema.Name + "\"");

            if (objectName.Schema.Database != null)
            {
                sb.Append(", DatabaseName = \"" + objectName.Schema.Database.Name + "\"");

                if (objectName.Schema.Database != null)
                {
                    sb.Append(", ServerName = \"" + objectName.Schema.Database.Server.Name + "\"");
                }
            }

            sb.Append(")");
            return sb.ToString();
        }
예제 #4
0
 protected virtual string GetFieldMListName(DiffTable table, DiffTable relatedTable, MListInfo mListInfo)
 {
     return(NaturalLanguageTools.Pluralize(relatedTable.Name.Name.RemovePrefix(table.Name.Name)));
 }
        protected virtual string GetFieldMListName(DiffTable table, DiffTable relatedTable, MListInfo mListInfo)
        {
            ObjectName name = mListInfo.TrivialElementColumn?.ForeignKey.TargetTable ?? relatedTable.Name;

            return NaturalLanguageTools.Pluralize(GetEntityName(name).RemoveSuffix("Entity")).FirstLower();
        }
        protected virtual string GetFieldMListName(DiffTable table, DiffTable relatedTable, MListInfo mListInfo)
        {
            ObjectName name = mListInfo.TrivialElementColumn?.ForeignKey.TargetTable ?? relatedTable.Name;

            return NaturalLanguageTools.Pluralize(GetEntityName(name).RemoveSuffix("Entity")).FirstLower();
        }
        protected virtual string GetPreserveOrderAttribute(MListInfo mListInfo)
        {
            if(mListInfo.PreserveOrderColumn == null)
                return null;

            var parts = new List<string>();

            parts.Add("\"" + mListInfo.PreserveOrderColumn.Name  +"\"");

             Type type = GetValueType(mListInfo.PreserveOrderColumn);

            parts.AddRange(GetSqlDbTypeParts(mListInfo.PreserveOrderColumn, type));

            return @"PreserveOrder({0})".FormatWith(parts.ToString(", "));
        }
        protected virtual string WriteFieldMList(string fileName, DiffTable table, MListInfo mListInfo, DiffTable relatedTable)
        {
            string type;
            List<string> fieldAttributes;
            if(mListInfo.TrivialElementColumn == null )
            {
                type = GetEntityName(relatedTable.Name);
                fieldAttributes = new List<string> { "NotNullable" };
            }
            else
            {
                string relatedEntity = GetRelatedEntity(relatedTable, mListInfo.TrivialElementColumn);
                type = GetFieldType(relatedTable, mListInfo.TrivialElementColumn, relatedEntity);

                fieldAttributes = GetFieldAttributes(relatedTable, mListInfo.TrivialElementColumn, relatedEntity).ToList(); 
            }

            var preserveOrder = GetPreserveOrderAttribute(mListInfo);
            if (preserveOrder != null)
                fieldAttributes.Add(preserveOrder);
       
            string primaryKey = GetPrimaryKeyAttribute(relatedTable);
            if (primaryKey != null)
                fieldAttributes.Add(primaryKey);

            string tableName = GetTableNameAttribute(relatedTable.Name, mListInfo);
            if (tableName != null)
                fieldAttributes.Add(tableName);

            string backColumn = GetBackColumnNameAttribute(mListInfo.BackReferenceColumn);
            if (backColumn != null)
                fieldAttributes.AddRange(backColumn);

            StringBuilder sb = new StringBuilder();

            string fieldName = GetFieldMListName(table, relatedTable, mListInfo);
            WriteAttributeTag(sb, fieldAttributes);
            sb.AppendLine("[NotNullValidator, NoRepeatValidator]");
            sb.AppendLine("public MList<{0}> {1} { get; set; } = new MList<{0}>();".FormatWith(type, fieldName.FirstUpper()));

            return sb.ToString();
        }
        protected virtual string GetTableNameAttribute(ObjectName objectName, MListInfo mListInfo)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("TableName(\"" + objectName.Name + "\"");
            if (objectName.Schema != SchemaName.Default)
                sb.Append(", SchemaName = \"" + objectName.Schema.Name + "\"");

            if (objectName.Schema.Database != null)
            {
                sb.Append(", DatabaseName = \"" + objectName.Schema.Database.Name + "\"");

                if (objectName.Schema.Database != null)
                {
                    sb.Append(", ServerName = \"" + objectName.Schema.Database.Server.Name + "\"");
                }
            }

            sb.Append(")");
            return sb.ToString();
        }
 protected virtual string GetFieldMListName(DiffTable table, DiffTable relatedTable, MListInfo mListInfo)
 {
     return NaturalLanguageTools.Pluralize(relatedTable.Name.Name.RemovePrefix(table.Name.Name));
 }