我正在调用一个采用表值参数的存储过程。
我知道传递此参数的以下选项: create DataTable
、DbDataReader
或IList<SqlDataRecord>
.
我正在使用IList<SqlDataRecord>
(使用DataTable
类似),但它涉及编写大量样板代码:创建集合、设置每个列的类型、添加行、设置每个单元格的值。
我认为这正是 Entity Framework 应该自动化的代码类型。所以我希望定义与 SQL TVP 类型匹配的 C# 类,添加常用的 EF 属性,创建这些对象的集合并让 EF 实现DbDataReader
或IList<SqlDataRecord>
在我的集合之上。但是我找不到任何方法来做到这一点——例如,有EntityDataReader
,但那是从 SQL 中读取的——我找不到在内存集合之上实现任何合适接口的实现。
在我开始使用反射自己编写之前,有什么建议吗?