C#-MySql-将数据从MySqlDataReader转换为不同模型的最佳方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-MySql-将数据从MySqlDataReader转换为不同模型的最佳方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2283字,纯文字阅读大概需要4分钟。
内容图文
![C#-MySql-将数据从MySqlDataReader转换为不同模型的最佳方法](/upload/InfoBanner/zyjiaocheng/883/7959f680e0a247cf84eac4235c80e134.jpg)
有使用实现MySql代码的现有代码库处理和修复错误的经验,但是在我的新工作中必须从头开始设计新程序.我不确定将数据从MySqlDataReader返回到自定义模型的最佳方法是什么.请指教!
这就是我所拥有的
资料夹结构:
>模型(文件夹)
> Metadata.cs
> User.cs
> MySqlDb.cs
Metadata.cs:从元数据表中重新发送数据
public class Metadata
{
public int Id { get; set; }
public string Title { get; set; }
public string Sku { get; set; }
public bool IsLive { get; set; }
}
User.cs:代表用户表中的数据
public class User
{
public int Id { get; set; }
public string UserName { get; set; }
public int Age { get; set; }
public string Address { get; set; }
}
MySqlDb.cs
using MySql.Data;
using MySql.Data.MySqlClient;
public class MySqlDb
{
public MySqlConnection Connection { get; set;}
public MySqlDb(string connectionString)
{
Connection = new MySqlConnection(connectionString);
}
public List<Metadata> RunSelectQueryForMetadata(string query)
{
var rdr = new MySqlCommand(query, Connection).ExecuteReader();
var metadata = new List<Metadata>();
using (rdr)
{
while(rdr.Read())
{
metadata.Add(
new Metadata {
Id = rdr["id"],
Title = rdr["title"],
Sku = rdr["sku"],
IsLive = rdr["islive"],
});
} // while
} // using
return metadata;
} // public void RunSelectQuery(string query)
} // public class MySqlDb
如果我尝试获取用户数据,则在考虑编写另一种方法(RunSelectQueryForUsers).我想避免针对不同的方法编写不同的方法.我不确定如何使用一种方法从具有不同数据结构的不同表中检索数据并将其类型转换为所需的模型.
任何帮助是极大的赞赏!!
解决方法:
一种方法是使用微型蠕虫,例如Dapper,它是为.Net构建的简单对象映射器. Dapper通过提供查询数据库的有用扩展方法来扩展IDbConnection.
在当前方法中实施dapper的示例:
public List<Metadata> RunSelectQueryForMetadata(string query)
{
var metadata = new List<Metadata>();
try // implement proper error handling
{
Connection.Open();
metadata = Connection.Query<Metadata>(query).ToList();
Connection.Close();
}
catch(Exception ex)
{
// error here
}
return metadata;
}
一些有用的链接:
> Dapper Github
> Dapper Tutorial
将其转换为通用方法:(目前尚未测试)
public List<T> RunSelectQuery<T>(string query)
{
try // implement proper error handling
{
Connection.Open();
metadata = Connection.Query<T>(query).ToList();
Connection.Close();
}
catch(Exception ex)
{
// error here
}
return metadata;
}
并在下面使用如下代码:
List<Metadata> myMetadata = RunSelectQuery<Metadata>(query);
内容总结
以上是互联网集市为您收集整理的C#-MySql-将数据从MySqlDataReader转换为不同模型的最佳方法全部内容,希望文章能够帮你解决C#-MySql-将数据从MySqlDataReader转换为不同模型的最佳方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。