linq-to-sql: хранимые процедуры нельзя использовать внутри запросов - PullRequest
1 голос
/ 02 марта 2010

Сбой на VS2010 RC LINQ-to-SQL с InvalidOperationException «Хранимые процедуры нельзя использовать внутри запросов.»:

var foo = (from a in aTable 
    from b in this.SomeStoredProcedure()
    where a.Id == b.Id
    select b.Id);

SomeStoredProcedure - это процедура SQL, которая возвращает таблицу. «присоединиться» также, кажется, не удается. Есть мысли почему?

1 Ответ

2 голосов
/ 02 апреля 2010

Поскольку вы не можете вызвать хранимую процедуру в операторе выбора.

Ваша команда будет выглядеть примерно так в tsql ... но это неверно.

select b.Id
    from aTable a
    inner join (exec SomeStoredProcedure) b on a.Id = b.Id

Оператор LINQ работал бы, если бы вы использовали udf вместо хранимой процедуры. Кроме того, вы можете выполнить хранимую процедуру перед выполнением объединения.

var foo = (from a in aTable 
    from b in this.SomeStoredProcedure().ToList()
    where a.Id == b.Id
    select b.Id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...