我的目标很简单,我想做异步I/O调用(使用异步等待) - 但是:
好.
目前这里是我的代码,它的工作是从db读取并将每一行项目投射到a Func<>
public IEnumerable < T > GetSomeData < T > (string sql, Func < IDataRecord, T > projector)
{
using(SqlConnection _conn = new SqlConnection(@"Data Source=..."))
{
using(SqlCommand _cmd = new SqlCommand(sql, _conn))
{
_conn.Open();
_cmd.CommandTimeout = 100000;
using(IDataReader rdr = _cmd.ExecuteReader())
{
while (rdr.Read()) yield return projector(rdr);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
那么,投影机是什么?
每个类都有一个函数,它获取a record(IDataRecord)并创建一个实体:
示例:
public class MyClass
{
public static MyClass MyClassFactory(IDataRecord …Run Code Online (Sandbox Code Playgroud)