Я работаю с извлечением данных из БД в WPF и делаю это с несколькими различными таблицами, которые я смоделировал как POCO в C #. Я хочу иметь возможность создать метод, который достаточно гибок для обработки любого из этих передаваемых POCO, а затем вернуть наблюдаемую коллекцию того же класса вызывающей стороне.
У меня есть кое-что настроенное, что я еще не тестировал, но я знаю, что это, вероятно, не лучший способ реализовать это, поэтому я хотел получить несколько советов о том, как лучше всего это сделать, прежде чем я даже удосужился устранить неполадки или попытаться чтобы заставить это работать:
public static ObservableCollection<object> SQLAuthentication(ObservableCollection<object> myCollection, object myClass, String sql)
{
var conn = new SqlConnection();
var paramList = GenerateSQLParameters(myClass, null);
var tempModel = Global.GenerateNewInstance(myClass);
//get the type
Type model = tempModel.GetType();
var prop = model.GetProperties();
PropertyInfo pi;
using (getConnection(conn))
{
conn.Open();
SqlCommand cmd;
SqlDataReader reader;
cmd = new SqlCommand(sql, conn);
reader = cmd.ExecuteReader();
while (reader.Read())
{
//set the values for each property in the model
foreach (var p in prop)
{
pi = tempModel.GetType().GetProperty(p.Name);
pi.SetValue(tempModel, reader[p.Name]);
}
myCollection.Add(tempModel);
}
reader.Close();
cmd.Dispose();
}
return myCollection;
}