如何从EF sql查询返回匿名类型

时间:2016-03-28 20:09:38

标签: c# entity-framework

var results = ObjectContext.ExecuteStoreQuery<T>("exec MyStoredProc");

MyStoreProc总是返回1行,其中9列都是int。

我不想为这个一次性使用类型数据创建类或结构。

在没有创建课程的情况下,最简洁的方法是什么?

2 个答案:

答案 0 :(得分:4)

理论上,您可以创建一个通用的包装器方法,该方法根据您传入的样本值隐式检测<T>类型,然后传递一个您希望返回的匿名结构的示例。你可以这样称呼它:

var results = AnonymousQueryWrapper("exec MyStoredProc", new {id = 0, name = "", ...});

但是,我认为创建一个私人课程并不是那么繁琐,而且更加清晰。所以,当你问“最干净的方法是什么?”我必须回答:“创建一个命名类型”。

答案 1 :(得分:0)

在使用ObjectContext.ExecuteStoreQuery()方法时,EF似乎不支持返回除具有EF映射的类型之外的任何类型。

我最终使用了一个匿名类型的SqlCommand对象和datareader。