Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF-执行具有动态生成字段的sql查询/存储过程_C#_Entity Framework_Entity Framework 4.1_Ef Code First - Fatal编程技术网

C# EF-执行具有动态生成字段的sql查询/存储过程

C# EF-执行具有动态生成字段的sql查询/存储过程,c#,entity-framework,entity-framework-4.1,ef-code-first,C#,Entity Framework,Entity Framework 4.1,Ef Code First,我在应用程序中使用EF代码优先的方法。我需要执行一个查询,它运行一个报告并返回带有动态生成字段的结果集。结果集中的字段可以根据条件而不同。是否可以像在数据集中一样使用代码优先的方法返回结果集,或者是否有其他方法来实现这一点 谢谢。(未测试)您可以尝试定义数据类型,该数据类型将具有查询可以返回的所有可能列的属性。它必须是没有嵌套对象的平面类型,并且属性必须与结果集中的列具有相同的名称。然后你可以用 var data = context.Database.SqlQuery<YourType&g

我在应用程序中使用EF代码优先的方法。我需要执行一个查询,它运行一个报告并返回带有动态生成字段的结果集。结果集中的字段可以根据条件而不同。是否可以像在数据集中一样使用代码优先的方法返回结果集,或者是否有其他方法来实现这一点

谢谢。

(未测试)您可以尝试定义数据类型,该数据类型将具有查询可以返回的所有可能列的属性。它必须是没有嵌套对象的平面类型,并且属性必须与结果集中的列具有相同的名称。然后你可以用

var data = context.Database.SqlQuery<YourType>("Your SQL Query or SP call");
var data=context.Database.SqlQuery(“您的SQL查询或SP调用”);

如果希望数据集只返回列,则必须使用标准ADO.NET
SqlDataAdapter
SqlConnection
/
SqlCommand
(或与数据库相关的版本)。EF不喜欢不返回固定列集的本机查询

CTP5已经死了。改用EF 4.1。谢谢回复。一个类型中的列太多了。现在,我可能会使用标准的ADO.Net方法。