1

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

4

4 回答 4

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对象添加扩展方法。它无法将数据库等创建为实体框架,但这一切都取决于需求。

于 2016-12-29T11:06:23.443 回答
2

你应该看看AutoMapperDataTable这是一种将 a 映射到List<object>您的规范的简单且用户友好的方式。你可以在这里

找到一篇讨论它的文章(包括示例代码)。 如果你想自动化这个过程,你可以使用动态对象,它不需要你为你正在使用的每个创建特定的类。希望这有帮助!

DataTable

于 2016-12-29T11:05:55.173 回答
2

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

于 2017-01-02T08:37:50.643 回答
0

LINQ to DB 上有一个有用的库

“LINQ to DB 是最快的 LINQ 数据库访问库,在 POCO 对象和数据库之间提供了一个简单、轻便、快速且类型安全的层。”

https://github.com/linq2db/linq2db

于 2016-12-29T11:40:06.907 回答