从SQL Server加载对象,但为c#类使用不同的对象属性

问题描述 投票:0回答:2

我不确定我是否清楚标题,但我想将SQL Server数据库中的信息“加载”到对象列表中。我是c#的新手,老实说,有一段时间没有做任何编码。

本质上,表格将包含列:app_name,app_type,app_disposition,对象具有属性:name,type,disposition。我有我想要使用Dapper工作的东西,只是使对象属性与表列相同。

只是好奇你是否可以加载但使用不同的对象属性名称。

c# dapper
2个回答
2
投票

使用Dapper,最简单的解决方案是使用别名。

你的班级是:

public class MyPoco
{
    public string Name {get;set;}
    //Declare other properties here
}

并且,您填写此类如下:

string sql = "SELECT app_name as Name, [include other columns here]
              FROM MyTable";

using (var conn = GetOpenConnection())
{
    var myPocoList = conn.Query<MyPoco>(sql);
}

上面的GetOpenConnection方法根据您的RDBMS简单地返回开放连接。

请注意,还有许多其他方法可以映射未​​匹配列和属性名称。有关详细信息,请参阅this问答。


1
投票

是的,您可以,并且必须使用“自定义映射”功能。这是我在这个主题上写的详细文章,以及代码示例,以展示如何做到这一点。

https://medium.com/dapper-net/custom-columns-mapping-1cd45dfd51d6

提示:使用Dapper.Fluent-Map插件

© www.soinside.com 2019 - 2024. All rights reserved.