gpt4 book ai didi

c# - 如何使用 ADO.NET 返回 IEnumerable<>?

转载 作者:可可西里 更新时间:2023-11-01 07:45:13 25 4
gpt4 key购买 nike

我一直在使用 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;
}
}

最佳答案

您可以像这样使用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;
}
}
}
}
}

显然,您可以通过创建一个接受 IDataReaderSqlDataReader 的 Favorites 构造函数来重构它,或者创建一个实用程序方法来填充值,或其他任何方式,但这是基本结构。

关于c# - 如何使用 ADO.NET 返回 IEnumerable<>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11634285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com