我在我的应用程序中使用EF代码第一种方法。我需要执行一个运行报告的查询,并返回带有动态生成字段的结果集。结果集中的字段可以根据条件而不同。是否可以使用代码第一种方法返回结果集,例如可能在DataSet中,或者是否有其他方法可以实现此目的?
感谢。
答案 0 :(得分:2)
(未经测试)您可以尝试定义数据类型,该数据类型将包含查询可以返回的所有可能列的属性。它必须是平面类型,没有嵌套对象,并且属性必须与结果集中的列具有相同的名称。然后你可以使用
var data = context.Database.SqlQuery<YourType>("Your SQL Query or SP call");
如果您希望DataSet
只返回列,则必须使用标准ADO.NET SqlDataAdapter
或SqlConnection
/ SqlCommand
(或与您的数据库相关的版本)。 EF不喜欢不返回固定列集的本机查询。