将 SQL 查询结果映射到实体中 (C#)
Map SQL Query results into entities (C#)
有没有一种方法可以将查询自动映射到 C# 中的 class 中,以便对查询结果进行强类型化?我不想再使用 DataTable 访问查询结果,手动指定列名。
你应该看看 AutoMapper。这是一种将 DataTable
映射到您指定的 List<object>
的简单且用户友好的方法。
您可以找到一篇讨论它的文章(包括示例代码)here.
如果你想自动化这个过程,你可以使用 dynamic 对象,它不需要你为你正在使用的每个 DataTable
创建特定的 类。
希望对您有所帮助!
有两个选项:
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那样创建数据库等,但这完全取决于需要。
LINQ to DB 上有一个有用的库
"LINQ to DB is the fastest LINQ database access library offering a simple, light, fast, and type-safe layer between your POCO objects and your database."
我最喜欢的问题。使用 QueryFirst。在 SQL 编辑器 window 中编写您的 SQL,在您键入时验证语法,然后 QueryFirst 将生成 C# 包装器来执行它,具有强类型的输入和输出。还有许多其他好处 :-) SqlServer、MySql 和内置的 Postgres 支持。其他的很容易添加。免责声明:我写了 QueryFirst。
有没有一种方法可以将查询自动映射到 C# 中的 class 中,以便对查询结果进行强类型化?我不想再使用 DataTable 访问查询结果,手动指定列名。
你应该看看 AutoMapper。这是一种将 DataTable
映射到您指定的 List<object>
的简单且用户友好的方法。
您可以找到一篇讨论它的文章(包括示例代码)here.
如果你想自动化这个过程,你可以使用 dynamic 对象,它不需要你为你正在使用的每个 DataTable
创建特定的 类。
希望对您有所帮助!
有两个选项:
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那样创建数据库等,但这完全取决于需要。
LINQ to DB 上有一个有用的库
"LINQ to DB is the fastest LINQ database access library offering a simple, light, fast, and type-safe layer between your POCO objects and your database."
我最喜欢的问题。使用 QueryFirst。在 SQL 编辑器 window 中编写您的 SQL,在您键入时验证语法,然后 QueryFirst 将生成 C# 包装器来执行它,具有强类型的输入和输出。还有许多其他好处 :-) SqlServer、MySql 和内置的 Postgres 支持。其他的很容易添加。免责声明:我写了 QueryFirst。