有没有办法将查询自动映射到 C# 中的类中以便强类型化查询结果?我不想使用 DataTable 访问查询结果,不再手动指定列名。
4 回答
有几个选项:
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
对象添加扩展方法。它无法将数据库等创建为实体框架,但这一切都取决于需求。
你应该看看AutoMapper。DataTable
这是一种将 a 映射到List<object>
您的规范的简单且用户友好的方式。你可以在这里
找到一篇讨论它的文章(包括示例代码)。
如果你想自动化这个过程,你可以使用动态对象,它不需要你为你正在使用的每个创建特定的类。希望这有帮助!DataTable
我最喜欢的问题。使用QueryFirst。在 SQL 编辑器窗口中编写您的 SQL,在您键入时验证语法,然后 QueryFirst 将生成 C# 包装器来执行它,具有强类型的输入和输出。还有许多其他好处 :-) 内置 SqlServer、MySql 和 Postgres 支持。其他易于添加。免责声明:我写了 QueryFirst。
LINQ to DB 上有一个有用的库
“LINQ to DB 是最快的 LINQ 数据库访问库,在 POCO 对象和数据库之间提供了一个简单、轻便、快速且类型安全的层。”