public int ADDEntityCurrent(T Entity)
{
try
{
//使用typeof获取泛型类型
Type type = typeof(T);
object oT = Activator.CreateInstance(type);
//通过Type 的GetProperties方法并添加相关参数获取当前成员(不包括继承成员)属性
///获取当前实例成员(不考虑继承成员)且公共成员的属性
///BindingFlags.DeclaredOnly指定只应考虑在所提供类型的层次结构级别上声明的成员。 不考虑继承的成员。
///BindingFlags.Instance指定实例成员要包括在搜索中。
///BindingFlags.Public指定公共成员要包括在搜索中。
var oEntity = type.GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Instance |
BindingFlags.Public);
//此时获得的oEntity (System.Reflection.PropertyInfo[]数组)为当前成员属性的数组
//获取字段
var section = "";
//获取值
var value = "";
//遍历属性并拼接插入SQL字符串
foreach (var item in oEntity)
{
var query = item.GetCustomAttributesData();
if (query.Count > 0 && (bool)query[0].ConstructorArguments[0].Value)
{
}
else
{
if (!item.Name.Equals("ID") && !item.Name.Equals("FID") && !item.Name.Equals("id") && !item.Name.Equals("Base_id"))
{
section = section + item.Name + ",";
value = value + "'" + item.GetValue(Entity, null) + "'" + ",";
}
}
}
string execSql = " insert into " + type.Name + "(" + section.Substring(0, section.Length - 1) + ") values(" + value.Substring(0, value.Length - 1) + ");SELECT @@Identity ";
//执行SQL字符串
return SenctionHelper.ExecuteScalar(execSql);
}
catch (System.Data.SqlClient.SqlException e)
{
throw e;
}
}