2013-12-20 42 views
3

我试图使用实体框架来执行存储过程来填充列表,但遇到问题因为其中一个存储的proc参数是一个int。foreach语句无法对'int'类型的变量进行操作,因为'int'不包含'GetEnumerator'的公共定义

这里是我的代码:

string param1 = "param1"; 
int param2 = 1; 

List<MyEntity> myEntities = new List<MyEntity>(); 

using (MyEntities ctx = new MyEntities()) 
{ 
    foreach(MyEntity myEntity in ctx.FindMyEntity(param1, param2)  
    { 
     myEntities.Add(myEntity); 
    } 
} 

这给了我下面的错误:

foreach statement cannot operate on variables of type 'int' because 'int' does not contain a public definition for 'GetEnumerator'

我有相似的代码片段,几乎是相同的,但第二个参数是一个字符串。它工作完美并返回预期结果。

我能做些什么来使这个工作与一个int参数?

+0

你可以发布'FindMyEntity'函数的代码吗? –

+3

'ctx.FindMyEntity(string,int)'返回什么?这听起来像它返回一个'int',在这种情况下:quelle惊喜? –

回答

5

but am running into issues because one of the stored proc parameters is an int

不,你碰到的问题,因为ctx.FindMyEntity(string,int)回报int。正如编译器所说:你不能在foreach之上。检查ctx.FindMyEntity正在返回,而你认为它应该返回。

+1

呃......你绝对正确。它的返回类型设置为(无),但我认为我已将其设置为不同。一旦正确设置返回类型,一切都运行良好。非常感谢您指出我的错误! :) – Sesame

相关问题