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