示例#1
0
        private string RenderNormalProperties(Table table)
        {
            var code = new StringBuilder();

            //先输出 Id 字段。
            var idColumn = RenderId(table);

            //Id 字段以外的其它字段,都可以输出了。
            foreach (var column in table.Columns)
            {
                if (!column.IsForeignKey && column != idColumn)
                {
                    string propertyType = string.Empty;
                    #region 转换到属性的类型

                    switch (column.DataType)
                    {
                    case DbType.AnsiString:
                    case DbType.AnsiStringFixedLength:
                    case DbType.StringFixedLength:
                    case DbType.Xml:
                    case DbType.String:
                        propertyType = "string";
                        break;

                    case DbType.Int16:
                    case DbType.Int32:
                    case DbType.Int64:
                    case DbType.SByte:
                    case DbType.UInt16:
                    case DbType.UInt32:
                    case DbType.UInt64:
                        propertyType = "int";
                        if (!column.IsRequired)
                        {
                            propertyType += '?';
                        }
                        break;

                    case DbType.VarNumeric:
                    case DbType.Single:
                    case DbType.Double:
                        propertyType = "double";
                        if (!column.IsRequired)
                        {
                            propertyType += '?';
                        }
                        break;

                    case DbType.Decimal:
                        propertyType = "decimal";
                        if (!column.IsRequired)
                        {
                            propertyType += '?';
                        }
                        break;

                    case DbType.Date:
                    case DbType.DateTime:
                    case DbType.DateTime2:
                    case DbType.DateTimeOffset:
                    case DbType.Time:
                        propertyType = "DateTime";
                        if (!column.IsRequired)
                        {
                            propertyType += '?';
                        }
                        break;

                    case DbType.Boolean:
                        propertyType = "bool";
                        if (!column.IsRequired)
                        {
                            propertyType += '?';
                        }
                        break;

                    case DbType.Binary:
                        propertyType = "byte[]";
                        break;

                    case DbType.Byte:
                        propertyType = "byte";
                        break;

                    case DbType.Guid:
                        propertyType = "Guid";
                        if (!column.IsRequired)
                        {
                            propertyType += '?';
                        }
                        break;

                    case DbType.Object:
                    case DbType.Currency:
                    default:
                        propertyType = "string";
                        break;
                    }

                    #endregion

                    var propertyCode = ItemCodeTemplate.GetNormalPropertyCode(ToEntityName(table), propertyType, column.Name);
                    code.Append(propertyCode);
                }
            }

            return(code.ToString());
        }