/// <summary> /// /// </summary> /// <param name="entity"></param> /// <param name="requestConfig"></param> /// <returns></returns> public virtual List <IColumnBase> ToColumns(T entity, Request.Config requestConfig) { List <IColumnBase> columnList = new List <IColumnBase>(); PropertyInfo[] properties = entity.GetType().GetProperties(); if (requestConfig.FirstCheckbox) { IColumnBase column = (IColumnBase)Activator.CreateInstance(Type.GetType("ERPApi.HttpClients.HttpModes.ColumnsMode." + requestConfig.Plugin), true); column.Checkbox = true; columnList.Add(column); } foreach (PropertyInfo p in properties) { IColumnBase column = (IColumnBase)Activator.CreateInstance(Type.GetType("ERPApi.HttpClients.HttpModes.ColumnsMode." + requestConfig.Plugin), true); column.Field = p.Name; DescriptionAttribute[] desc = (DescriptionAttribute[])p.GetCustomAttributes(typeof(DescriptionAttribute), false); if (desc.Length > 0) { column.Title = desc[0].Description; } else { column.Title = p.Name; } columnList.Add(column); } return(columnList); }
private bool ComparePropertyToColumn(IColumnBase relColumn, CompareLogger2 logger, IProperty property, DatabaseColumn column, bool isView) { var error = logger.CheckDifferent(property.GetColumnType(), column.StoreType, CompareAttributes.ColumnType, _caseComparison); error |= logger.CheckDifferent(relColumn.IsNullable.NullableAsString(), column.IsNullable.NullableAsString(), CompareAttributes.Nullability, _caseComparison); error |= logger.CheckDifferent(property.GetComputedColumnSql().RemoveUnnecessaryBrackets(), column.ComputedColumnSql.RemoveUnnecessaryBrackets(), CompareAttributes.ComputedColumnSql, _caseComparison); if (property.GetComputedColumnSql() != null) { error |= logger.CheckDifferent(property.GetIsStored()?.ToString() ?? false.ToString() , column.IsStored.ToString(), CompareAttributes.PersistentComputedColumn, _caseComparison); } var defaultValue = property.TryGetDefaultValue(out var propDefaultValue) ? _relationalTypeMapping.FindMapping(propDefaultValue.GetType()) .GenerateSqlLiteral(propDefaultValue) : property.GetDefaultValueSql().RemoveUnnecessaryBrackets(); error |= logger.CheckDifferent(defaultValue, column.DefaultValueSql.RemoveUnnecessaryBrackets(), CompareAttributes.DefaultValueSql, _caseComparison); if (!isView) { error |= CheckValueGenerated(logger, property, column); } return(error); }
internal ColumnExpression(IProperty property, IColumnBase column, TableExpressionBase table, bool nullable) : this( column.Name, table, property.ClrType.UnwrapNullableType(), column.PropertyMappings.First(m => m.Property == property).TypeMapping, nullable || column.IsNullable) { }
internal ColumnExpression(IProperty property, IColumnBase column, TableExpressionBase table, bool nullable) : this( column?.Name ?? property.GetColumnName(), table, property.ClrType, property.GetRelationalTypeMapping(), nullable || (column?.IsNullable ?? property.IsColumnNullable())) { }
public static ColumnExpression CreateColumnExpression(IProperty property, IColumnBase column, TableExpressionBase table, bool nullable) { var paramValues = new object[] { property, column, table, nullable }; return((ColumnExpression)ColumnExpressionConstuctorInfo.Invoke(paramValues)); }