Я пытаюсь изучить реляционное сопоставление объектов и создал свой собственный метод, который принимает объект и сопоставляет имена столбцов с соответствующими свойствами объекта.
Я хотел бы сделать то же самое при вставке простоуказание хранимой процедуры и сопоставление имен свойств объекта с именами соответствующих столбцов.Но я не уверен, как я могу это сделать или если это вообще возможно?Кто-нибудь знает какие-нибудь хорошие учебники по реляционному отображению объектов на c #.
Я предоставил своего читателя ниже, который заполняет список.
Я просто делаю это для развлечения, поэтому я не хочу использовать какие-либо фреймворки ORM.
public static List<T> loadFromReader(string sProcName)
{
List<T> EntityCollection = new List<T>();
Type type = typeof(T);
PropertyInfo[] properties = typeof(T).GetProperties();
using (Connection)
{
SqlCommand command = new SqlCommand(sProcName);
command.CommandType = CommandType.StoredProcedure;
if (SqlParamterList != null && SqlParamterList.Count > 0)
{
foreach (SqlParameter parameter in SqlParamterList)
command.Parameters.Add(parameter);
}
using (SqlDataReader reader = command.ExecuteReader())
{
int columnCount = reader.FieldCount;
string[] columnName = new string[columnCount];
for (int i = 0; i <= columnCount - 1; i++)
columnName[i] = reader.GetName(i);
while (reader.Read())
{
object obj = Activator.CreateInstance(type);
for (int i = 0; i <= columnName.Length - 1; i++)
{
foreach (PropertyInfo property in properties)
{
if (property.Name.Contains(columnName[i]))
{
object value = reader[i];
if (value == DBNull.Value)
value = null;
type.GetProperty(property.Name).SetValue(obj, value, null);
}
}
}
EntityCollection.Add((T)obj);
}
}
clearParameters();
return EntityCollection;
}
}