UDT как параметр в запросе EF4 - PullRequest
0 голосов
/ 21 мая 2011

Я знаю, что EF4 не поддерживает определенные пользователем Таблица Типы (пока).Мне нужно написать запрос, который принимает список пар <product_code, quantity> и возвращает набор записей с product_code и price для каждого пройденного product_code на основе quantity.Какой мой лучший вариант с EF4 для моделирования этого?Расчет в базе данных для получения цены довольно сложен, и существует множество продуктов, что означает, что большинство действий должно происходить на стороне сервера.(Например, я не могу сначала получить полный список цен с сервера, а затем отфильтровать нужные мне продукты на клиенте. Я также не могу применить количество к расчету на клиенте, которое должно быть передано на сервер и обработанотам).Любые мысли приветствуются.

1 Ответ

2 голосов
/ 22 мая 2011

Я думаю, вы в основном ответили на свой вопрос.Вычисления должны быть выполнены на сервере базы данных, и вы просто хотите получить результат, не так ли?Если вы используете SQL Server 2008, вы можете создать хранимую процедуру, которая принимает табличный параметр .Теперь вы можете вызвать эту процедуру либо напрямую, используя ADO.NET , либо используя EF и context.ExecuteStoreQuery, где вы все равно передаете DataTable в SqlParameter с SqlDbType.Structured.

Если вы неДля использования SQL Server 2008 вам нужна хранимая процедура с одним большим параметром nvarchar, передающим весь список в виде строки с разделителями-запятыми.Ваша хранимая процедура сначала проанализирует этот список во временной таблице, а затем обработает вычисление так же, как и с табличным параметром.

...