gpt4 book ai didi

mysql - 通过EnterpriseLibrary执行mvc中的存储过程

转载 作者:行者123 更新时间:2023-11-28 23:37:43 25 4
gpt4 key购买 nike

我正在尝试用 mvc 开发一个示例项目。在此,我试图从数据库(mysql)中获取用户列表。我正在使用企业库 dll 来设置数据库连接。

 public IEnumerable<UserViewModel> GetUserList()
{
DatabaseProviderFactory factory = new DatabaseProviderFactory();
Database db = factory.Create("MySqlConnection");
DbCommand dbc = db.GetStoredProcCommand("uspGetUserList");
dbc.CommandType = CommandType.StoredProcedure;

return db.ExecuteDataSet(dbc);
}

我知道 executedataset 只执行数据集类型......我想要执行 IEnumerable 类型的命令......谢谢

最佳答案

如果您想返回一个 IEnumerable 类型而不用手动构造它(从 DataSet 或 IDataReader),那么您可以使用访问器。

在您的情况下,您可以看起来像这样:

public IEnumerable<UserViewModel> GetUserList()
{
DatabaseProviderFactory factory = new DatabaseProviderFactory();
Database db = factory.Create("MySqlConnection");
IEnumerable<UserViewModel> results = db.ExecuteSprocAccessor<UserViewModel>("uspGetUserList");

return results;
}

这假设可以从存储过程结果集中映射 UserViewModel(例如,列名与属性名同名)。如果没有,那么您需要 create a custom mapper .参见 Retrieving Data as Objects有关访问器的更多信息,请参阅开发人员指南。

关于mysql - 通过EnterpriseLibrary执行mvc中的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35311894/

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