一尘不染

如何在Entity Framework 5.0中获取作为查询结果的数据集?

sql

我不确定这是否可能。我可能正在为尝试执行的工作使用错误的工具。

假设我要执行以下操作:

我执行一个名为“ GetTableName”的函数,该函数返回要从中获取数据的SQL表的名称。

我执行另一个名为“ GetFields”的函数,该函数返回SQL表中一个或多个字段的名称。

我希望能够编写另一个函数,该函数将返回一个数据集(或其他通用对象),该数据集包含“ GetTableName”指定的表中的行以及“
GetFields”指定的字段中的行

我知道我可以使用旧的ADO.net接口执行此操作,但是是否有使用Entity Framework执行此操作的适当方法?

需要强调的是,代码在编译时 不会 知道从SQL返回的数据的形状。


阅读 154

收藏
2021-03-08

共1个答案

一尘不染

由于EF需要映射复杂的类型,因此有可能编写一个继承自ExpandoObject的类,然后您可以(使用大量编码)将其映射到DataTable类或按原样使用。然后,您基本上需要告诉EF以某种方式尝试映射到那些属性。但是,我认为这将是一段漫长而曲折的代码,重载和基本上重写EF:s对象映射的核心功能的旅程。

在本示例中可以看到,编写者动态创建模型的地方仍然很艰辛。您根据数据自动生成属性的部分:http :
//www.markzhou.com/blog/post/2011/06/02/Use-dynamic-type-in​​-Entity-
Framework-41-SqlQuery()
-method.aspx

如果需要DataTable,我真的建议您使用ADO.NET。

2021-03-08