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(); }
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 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 GetFieldMListName(DiffTable table, DiffTable relatedTable, MListInfo mListInfo) { return NaturalLanguageTools.Pluralize(relatedTable.Name.Name.RemovePrefix(table.Name.Name)); }