public static EntityClassDefinition CreateEntity(this DapperProject project, ITableFunction tableFunction) { var definition = new EntityClassDefinition { Namespaces = { "System" }, Namespace = project.Database.HasDefaultSchema(tableFunction) ? project.GetEntityLayerNamespace() : project.GetEntityLayerNamespace(tableFunction.Schema), AccessModifier = AccessModifier.Public, Name = tableFunction.GetResultName(), Constructors = { new ClassConstructorDefinition(AccessModifier.Public) } }; if (!string.IsNullOrEmpty(tableFunction.Description)) { definition.Documentation.Summary = tableFunction.Description; } var selection = project.GetSelection(tableFunction); foreach (var column in tableFunction.Columns) { definition.Properties.Add(new PropertyDefinition(AccessModifier.Public, project.Database.ResolveDatabaseType(column), project.GetPropertyName(column.Name)) { IsAutomatic = true }); } definition.Implements.Add("IEntity"); if (selection.Settings.SimplifyDataTypes) { definition.SimplifyDataTypes(); } return(definition); }
public static string GetResultName(this DapperProject project, ITableFunction tableFunction) => string.Format("{0}Result", project.CodeNamingConvention.GetClassName(tableFunction.Name));
/// <summary> /// Gets a sequence of extended properties for table function /// </summary> /// <param name="connection">Instance of <see cref="DbConnection"/> class</param> /// <param name="tableFunction">Name for table function</param> /// <param name="name">Name for extended property</param> /// <returns>A sequence of <see cref="ExtendedProperty"/> class</returns> public static IEnumerable <ExtendedProperty> GetExtendedProperties(this DbConnection connection, ITableFunction tableFunction, string name) => new ExtendedPropertyRepository(connection).GetExtendedProperties(new ExtendedProperty(name, "schema", tableFunction.Schema, tableFunction.Type, tableFunction.Name)).ToList();
public static string GetResultName(this ITableFunction tableFunction) => string.Format("{0}Result", CodeNamingConvention.GetClassName(tableFunction.Name));