2012-01-05 3 views
3

전에서 DbCommand을 사용하고 있습니다 : 나는 PARAMS와 객체 짓고 있어요 System.ComponentModel.ComponentDbCommand with Linq?

:

DbCommand command = _webERPDB.GetStoredProcCommand("mySp"); 
_webERPDB.AddInParameter(command, "@a", DbType.Int32, policyId); 
_webERPDB.AddInParameter(command, "@b", DbType.Int32, appPolicyPrintQaCheckListId); 
_webERPDB.AddInParameter(command, "@c", DbType.Int32, createdBy); 

그리고 지금, 나는 LINQ 사용하여 반복 할 :

IEnumerable<DbParameter> t = from a in command.Parameters select a; 

을하지만 그건 다음 오류가 발생했습니다 :

enter image description here

의 유형 (제네릭이 아닌) IEnumerable하지만 IEnumerable<T>를 구현 DbParameterCollection이기 때문에

답변

7
IEnumerable<DbParameter> t = command.Parameters.Cast<DbParameter>(); 

당신은 Cast<T>()을 사용해야합니다. 쓸 수 있습니다

IEnumerable t = command.Parameters; 
+0

왜해야합니까? 이미 DbParameter 컬렉션입니다 ... –

+0

업데이트 된 답변보기 – ken2k