iro*_*man 15 c# ado.net dapper
我一直在使用Dapper和我目前的项目,我将不得不使用ADO.NET.我的问题是如何使用ADO.NET返回IEnumerable?这是我使用Dapper的原因.有人可以帮我转换这个但是用ADO做同样的事吗?
public IEnumerable<Favorites> GetFavorites()
{
using (SqlConnection sqlConnection = new SqlConnection(connString))
{
sqlConnection.Open();
var work = sqlConnection.Query<Favorites>("Select * from favorites");
return work;
}
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*tty 19
您可以这样使用yield return:
public IEnumerable<Favorites> GetFavorites()
{
using (SqlConnection sqlConnection = new SqlConnection(connString))
{
sqlConnection.Open();
using (SqlCommand cmd = sqlConnection.CreateCommand())
{
cmd.CommandText = "Select * from favorites";
cmd.CommandType = CommandType.Text;
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
// Create a Favorites instance
var favorites = new Favorites();
favorites.Foo = reader["foo"];
// ... etc ...
yield return favorites;
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
显然,你可以通过创建一个接受一个IDataReader或者SqlDataReader或者创建一个实用程序方法来填充值的收藏夹构造函数来重构它,或者其他什么,但这是基本结构.