AIMS/AIMSExtension/AttributeHelper.cs
2022-08-23 21:12:59 +08:00

69 lines
2.1 KiB
C#

using System;
using System.Data;
using System.Reflection;
namespace AIMSExtension
{
public class AttributeHelper
{
public static string GetTableName(Type type)
{
var tableName = type.Name;
if (type.IsDefined(typeof(TableAttribute),false))
{
var attr = (TableAttribute)type.GetCustomAttributes(typeof(TableAttribute), false)[0];
tableName = attr.TableName;
}
return tableName;
}
public static MyPropInfo GetPropertyExtend(PropertyInfo property)
{
var myFieldInfo = new MyPropInfo();//记录字段的所有特性信息
myFieldInfo.PropertyName = property.Name;
var dataField = (DataFieldAttribute)Attribute.GetCustomAttribute(property, typeof(DataFieldAttribute));
var fieldName = property.Name;
if (dataField != null)
{
myFieldInfo.IsKey = dataField.IsKey;
myFieldInfo.IsAutoGrow = dataField.IsAutoGrow;
myFieldInfo.FieldDisplayName = !string.IsNullOrEmpty(dataField.Descript)? dataField.Descript:fieldName;
if (!string.IsNullOrEmpty(dataField.FieldName)) fieldName = dataField.FieldName;
}
myFieldInfo.DataFieldName = fieldName;
myFieldInfo.SqlDbType = TypeHelper.ConvertTypeToSqlDbType(property.PropertyType);
myFieldInfo.PropInfo = property;
return myFieldInfo;
}
}
public class MyPropInfo
{
/// <summary>
/// 实体属性名称
/// </summary>
public string PropertyName { get; set; }
/// <summary>
/// 数据库对应字段名
/// </summary>
public string DataFieldName { get; set; }
public string DataValue { get; set; }
public string FieldDisplayName { get; set; }
public bool IsAutoGrow { get; set; }
public bool IsKey { get; set; }
public SqlDbType SqlDbType { get; set; }
public PropertyInfo PropInfo { get; set; }
}
}