public T Get(K itemKey) { //default acar sozu ile instance yarat //misal: eger T int tipinde olarsa ozaman : int item = new int() ,stringdirse : string item = new string() olur T item = default(T); SqlQueryGenerator <T> queryGenerator = new SqlQueryGenerator <T>(); string deleteQuery = queryGenerator.GenerateSelectByIdQuery <K>(itemKey); using (SqlCommand command = new SqlCommand(deleteQuery, _Connection)) { using (SqlDataReader rd = command.ExecuteReader()) { while (rd.Read()) { object obj = Activator.CreateInstance(typeof(T)); PropertyInfo[] propertyInfos = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (var property in propertyInfos) { property.SetValue(obj, rd[property.Name]); } item = obj as T; } } } return(item); }