コード例 #1
0
            /// <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);
            }
コード例 #2
0
        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);
        }
コード例 #3
0
 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)
 {
 }
コード例 #4
0
ファイル: ColumnExpression.cs プロジェクト: sacerande/efcore
 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()))
 {
 }
コード例 #5
0
        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));
        }