C# 简洁的映射

C# 简洁的映射,c#,asp.net,dapper,C#,Asp.net,Dapper,我暑假要做一个月的工作,我得用简洁的方式画一个模型。我看了好几个视频,我真的不明白它是怎么工作的。我只想简单地用asp.NETWebAPI映射整个模型 下面是我的两个型号,我已经安装了Dapper 我试着看一些视频,用谷歌搜索我的问题,但没有一个能以我能理解的方式解释 设施类别: namespace DataImportWebService.Models { public class Facility { public string Name { get; set

我暑假要做一个月的工作,我得用简洁的方式画一个模型。我看了好几个视频,我真的不明白它是怎么工作的。我只想简单地用asp.NETWebAPI映射整个模型

下面是我的两个型号,我已经安装了Dapper

我试着看一些视频,用谷歌搜索我的问题,但没有一个能以我能理解的方式解释

设施类别:

namespace DataImportWebService.Models
{
    public class Facility
    {
        public string Name { get; set; }

        public string Date { get; set; }

        public string FeedbackType { get; set; }

        public int Count { get; set; }
    }
}
测量等级:

namespace DataImportWebService.Models
{
    public class Measurement
    {
        public string MeasurementDate { get; set; }

        public string Name { get; set; }

        public string MeasurementName { get; set; }

        public decimal MeasuerementValue { get; set; }
    }
}

我希望得到一个解释或一些代码。谢谢大家!

听起来你只是想知道如何使用简洁。那里有很多文档。对于您的2个对象,如果您只是尝试将数据库中的数据映射到这些对象中,那么就相当简单了

我经常创建一个基本存储库类,其中包含我可能要运行的所有不同版本。最基本的可能是:

protected IEnumerable<T> ExecuteQuery<T>(string query, object parameters = null, CommandType? commandType = null)
{
    using (var conn = Connection)
    {
        return conn.Query<T>(query, parameters, commandType: commandType, commandTimeout: 0);
    }
}
受保护的IEnumerable ExecuteQuery(字符串查询,对象参数=null,CommandType?CommandType=null)
{
使用(var conn=连接)
{
返回conn.Query(查询,参数,commandType:commandType,commandTimeout:0);
}
}
然后,可以在其他存储库中使用,如下所示:

ExecuteQuery<YourObjectToMapTo>(YourSQLQuery, YourParameters);
ExecuteQuery(您的SQLQuery,您的参数);

这将返回对象的IEnumerable,即使它只得到1。要仅返回1,只需在末尾粘贴First()或FirstOrDefault()。

您需要了解的是,Dapper只是ADODB.NET上的一个薄薄的包装。它与实体框架完全不同。 Dapper现在不支持您的数据库结构,也不支持SQL。创建数据库并编写所有SQL语句。 Dapper通过向您的连接添加许多扩展方法来帮助您。扩展方法从
ADODB.NET
中获取所有乏味的
DataReader
内容并将其隐藏起来,这样您就可以向数据库触发
select
,并在数据库列映射到实体的位置返回一个很好的列表。
如果您的实体属性和数据库列的名称相同,那么实际上没有什么区别。我建议您仔细阅读@sr28答案中的教程。

那么您是说您还没有关于如何映射这些对象的解决方案,需要一些帮助吗?或者,您可以映射它们您只是想了解dapper是如何做到的?请向我们展示这两个表的
CREATE TABLE
脚本。
measurementvalue
看起来像一个打字错误。