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でコーディングしてきましたが、まだ多くのコンセプトではかなり新しいです。データセットの列を最も効果的に反映する匿名オブジェクトのリストを作成する方法については、あまりよく分かりません。私はまた、私はこの場合に使用する戻り値の型がわからない、私は多分リストを考えています。次に、私はそれらの匿名のオブジェクトからデータを引き出し、必要な場所に転送するためにリフレクションを使用する必要があると思います。
誰でもこのパズルの重要な部分を私を助けることができるなら、私は最も義務づけられます。
なぜ車輪の再発明。 Entity Frameworkまたはその他のORMを使用します。 –
@JohnSaunders OPは彼がAccessを使用していると述べています。 EFはAccessをサポートしておらず、マッピングを行うためにORMをスローすることは過度のものです。 – Asti