DbCommand с Linq? - PullRequest
       46

DbCommand с Linq?

3 голосов
/ 05 января 2012

Я использую DbCommand из: System.ComponentModel.Component

Я строю объект с параметрами:

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

1 Ответ

9 голосов
/ 05 января 2012
IEnumerable<DbParameter> t = command.Parameters.Cast<DbParameter>();

Вы должны использовать Cast<T>(), потому что тип Parameters равен DbParameterCollection, который реализует IEnumerable (не универсальный), но не IEnumerable<T>. Вы можете написать

IEnumerable t = command.Parameters;
...