var results = ObjectContext.ExecuteStoreQuery<T>("exec MyStoredProc");
MyStoreProc总是返回1行,其中9列都是int。
我不想为这个一次性使用类型数据创建类或结构。
在没有创建课程的情况下,最简洁的方法是什么?
答案 0 :(得分:4)
理论上,您可以创建一个通用的包装器方法,该方法根据您传入的样本值隐式检测<T>
类型,然后传递一个您希望返回的匿名结构的示例。你可以这样称呼它:
var results = AnonymousQueryWrapper("exec MyStoredProc", new {id = 0, name = "", ...});
但是,我认为创建一个私人课程并不是那么繁琐,而且更加清晰。所以,当你问“最干净的方法是什么?”我必须回答:“创建一个命名类型”。
答案 1 :(得分:0)
在使用ObjectContext.ExecuteStoreQuery()方法时,EF似乎不支持返回除具有EF映射的类型之外的任何类型。
我最终使用了一个匿名类型的SqlCommand对象和datareader。