NpgsqlCommand over NpgsqlDataAdapter

NpgsqlCommand over NpgsqlDataAdapter

为什么要使用 NpgsqlCommand 而不是 NpgsqlDataAdapter?

Npgsql命令用法,使用reader

var _command = new NpgsqlCommand();
var _reader = _command.ExecuteReader();
...
while (_reader.Read())
{
...

NpgsqlDataAdapter 用法,使用数据集

IDbDataAdapter dbDataAdapter = new NpgsqlDataAdapter();
dbDataAdapter.SelectCommand = selectCommand;
...
dbDataAdapter.Fill (dataSet);

Basic用法没有提到DataAdapter。 NpgsqlCommand 和 reader 是否更有效并且应该是首选?

NpgsqlCommand 是更底层的 API - 您负责提供原始 SQL,并通过 NpgsqlDataReader 读取结果集。 DataAdapter/DataTable 是上面的一层;它有一些缺点(例如,结果集在内存中缓冲)并且通常被认为有点 old/legacy。如果您想要发送 SQL 并读回结果,请考虑使用 NpgsqlCommand 除非有充分的理由使用 NpgsqlAdapter。