Beispiel #1
0
        /// <summary>
        /// 获取实体
        /// </summary>
        /// <param name="sender">方法请求来源</param>
        /// <param name="args">相关参数</param>
        /// <returns>数据表实体</returns>
        protected override T CreateEntity(Object sender, EntityCreatingArgs args)
        {
            T entity = new T();

            PropertyInfo[] props = this._entityType.GetProperties();

            foreach (PropertyInfo prop in props)
            {
                DatabaseColumnAttribute attr = null;

                if (this._mapping.TryGetValue(prop.Name, out attr) && attr != null)
                {
                    DataType dataType = (attr.DataType.HasValue ? attr.DataType.Value : DataTypeHelper.InternalGetDataType(prop.PropertyType));
                    Object   value;

                    if (EntityHelper.InternalIsNullableType(prop.PropertyType))
                    {
                        value = this.LoadNullableValue(args, attr.ColumnName, dataType);
                    }
                    else
                    {
                        value = this.LoadValue(args, attr.ColumnName, dataType);
                    }

                    prop.SetValue(entity, value, null);
                }
            }

            return(entity);
        }
Beispiel #2
0
        /// <summary>
        /// 获取实体类属性名称对应的字段特性
        /// </summary>
        /// <param name="propertyName">实体类属性名称</param>
        /// <returns>字段特性</returns>
        DatabaseColumnAttribute IDatabaseTableWithMapping.this[String propertyName]
        {
            get
            {
                if (this._mapping == null)
                {
                    return(null);
                }

                DatabaseColumnAttribute attr = null;

                if (!this._mapping.TryGetValue(propertyName, out attr))
                {
                    return(null);
                }

                return(attr);
            }
        }