public TSource GetDataById <TSource>(int Id) where TSource : BaseModel { //string _sqlConnectString = ConfigurationManager.ConnectionStrings["First"].ConnectionString.ToString(); var type = typeof(TSource); ModelsAndEntitiesAttribute modelsAndEntitiesAttribute = (ModelsAndEntitiesAttribute)type.GetCustomAttribute(typeof(ModelsAndEntitiesAttribute)); string sqlCommandText = $"SELECT {string.Join(',', type.GetProperties().Select(p => { return $"[{p.GetEntityToModelByProperty()}] as {p.Name}"; }))} FROM [{(modelsAndEntitiesAttribute == null ? type.Name : modelsAndEntitiesAttribute.EntityName)}] WHERE Id = {Id}"; //using (SqlConnection sqlConnection = new SqlConnection(_sqlConnectString)) //{ // SqlCommand sqlCommand = new SqlCommand(sqlCommandText, sqlConnection); // sqlConnection.Open(); // var sqlDataReader = sqlCommand.ExecuteReader(); // if (sqlDataReader.Read()) // { // return Trans<TSource>(type, sqlDataReader); // } // else // { // return null; // } //} return(ExcuteSql(sqlCommandText, command => { var sqlDataReader = command.ExecuteReader(); if (sqlDataReader.Read()) { return Trans <TSource>(type, sqlDataReader); } else { return null; } })); }
public static string GetEntityToModelByProperty(this PropertyInfo property) { ModelsAndEntitiesAttribute modelDiscriptionAttribute = (ModelsAndEntitiesAttribute)property.GetCustomAttribute(typeof(ModelsAndEntitiesAttribute)); return(modelDiscriptionAttribute != null ? modelDiscriptionAttribute.EntityName : property.Name); }