LINQ к SQL: результаты хранимой процедуры

Вы ищете itertools.product :

>>> import itertools as it
>>> a = [1,2,3,4,5]
>>> b = ["banana", "orange", "pear"]
>>> for x in it.product(a, b):
...     print(x)
... 
(1, 'banana')
(1, 'orange')
(1, 'pear')
(2, 'banana')
(2, 'orange')
(2, 'pear')
(3, 'banana')
(3, 'orange')
(3, 'pear')
(4, 'banana')
(4, 'orange')
(4, 'pear')
(5, 'banana')
(5, 'orange')
(5, 'pear')

6
задан Ronnie Overby 27 February 2009 в 13:37
поделиться

2 ответа

Можно ли отредактировать это в dbml? Лично, я склонен рассматривать автоматически сгенерированные типы (от функций и хранимых процедур) как DTOs, которые локальны для DAL, таким образом, я сразу повторно отображаю их на свое собственное ПОСТЕПЕННО представление - т.е.

var qry = from row in ctx.SomeProc(12345)
          select new Foo {ID = row.ID, Name = row.Name };

и т.д. Ре второй вопрос "Кроме того, как можно выполнить запрос linq на наборе результатов хранимой процедуры?" - я рекомендовал бы использовать UDF вместо хранимой процедуры, если Вы хотите составить его: это позволяет Вам делать состав в базе данных, например, подкачка страниц и фильтрация:

var qry = (from row in ctx.SomeFunction(12345)
          where row.IsActive
          select row).Skip(10).Take(10);

который должен (в LINQ-SQL, по крайней мере), делают все в TSQL в сервере. Иначе можно звонить AsEnumerable() и используйте LINQ к объектам при вызове слой.NET:

var qry = (from row in ctx.SomeProc(12345).AsEnumerable()
          where row.IsActive
          select row).Skip(10).Take(10);

Отредактировать dbml (который является просто xml), изменение ElementType/@Name здесь:

<Function Name="dbo.CustOrderHist" Method="CustOrderHist">
  <Parameter Name="CustomerID" Parameter="customerID" Type="System.String" DbType="NChar(5)" />
  <ElementType Name="FooBar"> <!-- ********** HERE ************ -->
      <Column Name="ProductName" Type="System.String" DbType="NVarChar(40) NOT NULL" CanBeNull="false" />
      <Column Name="Total" Type="System.Int32" DbType="Int" CanBeNull="true" />
  </ElementType>
</Function>
8
ответ дан 10 December 2019 в 00:45
поделиться

Кроме того, как можно выполнить запрос linq на наборе результатов хранимой процедуры?

var query = from results in datacontext.storedprocedurename()
            where results.whatever == 1
            select results;
2
ответ дан 10 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: