У меня есть следующий класс, который я использую для чтения в больших объемах данных из базы данных Access.Лучшая практика: создание класса доступа к данным
public class ConnectToAccess
{
private readonly string _connectionString;
public ConnectToAccess(String connectionString)
{
_connectionString = connectionString;
}
public List<String> GetData(String sql)
{
var data = new List<String>();
using (var connection = new OleDbConnection(_connectionString))
{
using (var command = connection.CreateCommand())
{
command.CommandText = sql;
command.CommandType = CommandType.Text;
connection.Open();
using (var reader = command.ExecuteReader())
{
if (reader != null && reader.HasRows)
while (reader.Read())
{
data.Add(reader["First Name"] + " " + reader["Last Name"]);
}
}
}
}
return data;
}
}
Как есть, этот код работает и успешно извлекает данные из базы данных. Однако я хотел бы улучшить метод GetData(), чтобы сделать его более динамичным. Я хотел бы, чтобы он каким-то образом возвращал список анонимных объектов, где каждый объект имеет свойства, относящиеся к столбцам возвращаемого набора данных.
Я кодировал в .Net какое-то время, но я все еще довольно новичок во многих концепциях. Я не совсем уверен, как создать этот список анонимных объектов, которые наиболее эффективно отражают столбцы в наборе данных. Я также не уверен, какой тип возврата я бы использовал в этом случае, я думаю, может быть, List. Тогда, я полагаю, мне нужно будет использовать отражение, чтобы вытащить данные из этих анонимных объектов и перенести их туда, где это нужно.
Если кто-нибудь может мне помочь с какой-либо значительной частью этой головоломки, я был бы самым обязанным.
Зачем изобретать колесо. Используйте Entity Framework или другие ORM. –
@JohnSaunders OP заявляет, что использует Access. EF не поддерживает Access, и бросать в ORM только для того, чтобы сделать картографирование, это избыток. – Asti