/// <summary>
        ///     Creates a new database column within the table.
        /// </summary>
        public DomainTableColumn CreateColumn()
        {
            DomainTableColumn column = new DomainTableColumn(this);

            _tableColumns.Add(column);
            return(column);
        }
Beispiel #2
0
 /// <summary>
 ///     Deserialises the version history from the specified xml element.
 /// </summary>
 internal static void Deserialise(DomainTable table, XmlNode parentNode)
 {
     foreach (XmlNode xmlNode in parentNode.SelectNodes("column"))
     {
         DomainTableColumn result = table.CreateColumn();
         result.Deserialise(xmlNode);
     }
 }
 /// <summary>
 ///     Deserialises the version history from the specified xml element.
 /// </summary>
 internal static void Deserialise(Domain domain, XmlNode parentNode)
 {
     foreach (XmlNode xmlNode in parentNode.SelectNodes("table"))
     {
         DomainTable result = domain.CreateTable();
         result.Deserialise(xmlNode);
         DomainTableColumn.Deserialise(result, xmlNode);
         DomainTableIndex.Deserialise(result, xmlNode);
         DomainTableConstraint.Deserialise(result, xmlNode);
     }
 }
        /// <summary>
        ///     Parses a data record into a <see cref="DatabaseTableColumn" /> instance.
        /// </summary>
        private DomainTableColumn ParseColumn(DomainTable table, IDataRecord record)
        {
            DomainTableColumn column = table.CreateColumn();

            column.ColumnOrdinal      = record["column_index"].ConvertTo <Int32>();
            column.ColumnName         = record["column_name"].ConvertTo <String>();
            column.ColumnType         = record["column_type"].ConvertTo <DomainDataType>();
            column.ColumnLength       = record["column_length"].ConvertTo <Int32>();
            column.ColumnScale        = record["column_scale"].ConvertTo <Int32>();
            column.ColumnNullable     = record["column_nullable"].ConvertTo <Boolean>();
            column.ColumnDefaultValue = record["column_default"].ConvertTo <String>();
            return(column);
        }
Beispiel #5
0
        protected string GetRecordValueExpression(DomainTableColumn column)
        {
            StringBuilder expression = new StringBuilder();

            string valueType = column.ProgrammaticType.Replace("?", "");

            Type progType = Type.GetType("System." + valueType);

            if (progType != null && progType.IsSignedNumericOrDate())
            {
                expression.AppendFormat("record.{0} == {1}.MinValue ? ", column.ProgrammaticName, valueType);
                if (!column.ColumnNullable && !string.IsNullOrEmpty(column.ColumnDefaultValue))
                {
                    if (progType.Equals(typeof(Decimal)))
                    {
                        expression.Append(column.ColumnDefaultValue + "M"); // The standard represtation of an number needs an "M" appended to make it a decimal, e.g. 0 === int or double, 0M === decimal
                    }
                    else if (progType.Equals(typeof(DateTime)))
                    {
                        if (column.ColumnDefaultValue.Equals("getdate()", StringComparison.InvariantCultureIgnoreCase))
                        {
                            expression.Append("DateTime.Now");
                        }
                        else
                        {
                            expression.Append("new DateTime(1900,1,1)");
                        }
                    }
                    else
                    {
                        expression.Append(column.ColumnDefaultValue);
                    }
                }
                else
                {
                    expression.Append("( useV6Logic ? ");
                    if (progType.Equals(typeof(System.DateTime)))
                    {
                        if (!string.IsNullOrEmpty(column.ColumnDefaultValue) && column.ColumnDefaultValue.Equals("getdate()", StringComparison.InvariantCultureIgnoreCase))
                        {
                            expression.Append("new DateTime?(DateTime.Now)");
                        }
                        else
                        {
                            expression.Append("new DateTime?(new DateTime(1900,1,1))");
                        }
                    }
                    else
                    {
                        expression.AppendFormat("new {0}?({1}{2})", valueType, column.ColumnDefaultValue ?? "0", progType.Equals(typeof(Decimal)) ? "M" : "");
                    }
                    expression.Append(" : null )");
                }
                expression.Append(" : record." + column.ProgrammaticName);
            }

            if (expression.Length == 0)
            {
                expression.Append("record." + column.ProgrammaticName);
            }

            return(expression.ToString());;
        }
 public StoredProcFetchAllByColumn(GeneratedProject project, DomainEntity entity, DomainTableColumn column) : base(project)
 {
     _entity = entity;
     _column = column;
 }
 /// <summary>
 ///     Initialises a new <see cref="DomainEntityAttribute" /> instance.
 /// </summary>
 public DomainEntityAttribute(DomainEntity entity, DomainTableColumn column) : base(entity.Version)
 {
     _entity = entity;
     _column = column;
 }