///<summary> /// 按照主键进行查找对应的数据库数据 ///</summary> public static T Find <T>(string key) where T : OrmBaseModel { if (string.IsNullOrEmpty(key)) { throw new ArgumentNullException("primary key can't be null"); } var sqlStr = SqlCache <T> .GetSql(SqlType.Find); var parameters = SqlCache <T> .GetFindMySqlParameter(key); return(ExceteSql <T>(sqlStr, parameters, command => { MySqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { Type type = typeof(T); PropertyInfo[] properies = SqlCache <T> .AllProperties; T result = Activator.CreateInstance <T>(); foreach (var proerty in properies) { var value = reader[proerty.GetMappingName()]; proerty.SetValue(result, value is DBNull ? null : value); } return result; } return default(T); })); }