将SQL查询结果映射到实体(C#)

时间:2016-12-29 11:01:46

标签: c# mysql orm automap

有没有办法将查询自动化为C#中的类以强类型查询结果?我不想使用DataTable访问查询结果,再次手动指定列名。

4 个答案:

答案 0 :(得分:3)

有几种选择:

EntityFramework - 强大而重量级。 https://msdn.microsoft.com/en-us/library/aa937723(v=vs.113).aspx

Dapper - 轻量级 - 主要是映射器https://www.codeproject.com/Articles/212274/A-Look-at-Dapper-NET

如果只需要存储过程,查询等的映射,Dapper是很好的方法,因为它基本上是为connection对象添加扩展方法。它不能像Entity Framework那样创建数据库等,但它们都取决于需求。

答案 1 :(得分:2)

你应该看看AutoMapper。这是一种简单且用户友好的方式,可将DataTable映射到您的规格的List<object>

您可以找到一篇文章来讨论它(包括示例代码)here

如果您想自动化该过程,可以使用dynamic个对象,这些对象不需要您为您正在使用的每个DataTable创建特定的类。

希望这个帮助!

答案 2 :(得分:1)

LINQ to DB上有一个有用的库

&#34; LINQ to DB是最快的LINQ数据库访问库,在POCO对象和数据库之间提供简单,轻便,快速且类型安全的层。&#34;

https://github.com/linq2db/linq2db

答案 3 :(得分:1)

我最喜欢的问题。使用QueryFirst。在SQL编辑器窗口中编写SQL,在键入时验证语法,然后QueryFirst将生成C#包装器以执行它,具有强类型输入和输出。还有许多其他好处:-)内置SqlServer,MySql和Postgres支持。其他很容易添加。免责声明:我写过QueryFirst。