/// <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); }
/// <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); } }