Im пытается вызвать хранимую процедуру с использованием инфраструктуры Entity. Если я перехожу к веб-методу api, он отлично работает, но при вызове его от ветра он вызывает исключение в методе метаданных. Ошибка: «Не удалось найти тип CLR для ...». Кто-нибудь знает, как это исправить?Бриз с хранимой процедурой Ошибка CLR
ответ
У меня была такая же проблема, но, слава богу, я понял решение. Вместо использования хранимой процедуры вы должны использовать представление, так как Breeze распознает представления как DbSet<T>
, так же, как и таблицы. Скажем, у вас есть таблица SQL-сервера, содержащая две таблицы Customers и Orders.
Customers (**CustomerId**, FirstName, LastName)
Orders (OrderId, #CustomerId, OrderDate, OrderTotal)
Теперь скажите, что вам нужен запрос, который возвращает заказы CustomerId. Обычно вы делаете это в хранимой процедуре, но, как я уже сказал, вам нужно использовать представление. Таким образом, запрос будет выглядеть так в представлении.
Select o.OrderId, c.CustomerId, o.OrderDate, o.OrderTotal
from dbo.Orders o inner join dbo.Customers c on c.CustomerId = o.CustomerId
Уведомление о том, что фильтрация (где ...) отсутствует. Таким образом:
i. Создайте [общее] представление, которое включает в себя фильтрующий ключ (ы) и назовите его, например, OrdersByCustomers
ii. Добавить представление OrdersByCustomers к модели объекта в проекте VS
iii. Добавить объект в контроллер Breeze, как таковые:
public IQueryable<OrdersByCustomers> OrdersByCustomerId(int id)
{
return _contextProvider.Context.OrdersByCustomers
.Where(r => r.CustomerId == id);
}
Обратите внимание на .где (г => r.CustomerId == Id) фильтра. Мы могли бы сделать это в файле службы данных, но поскольку мы хотим, чтобы пользователь видел только свои личные данные, нам нужно отфильтровать с сервера, чтобы он только возвращал свои данные.
iv. Теперь, что объект находится в контроллере, вы можете вызвать его в файле службы данных, такие, как:
var getOrdersByCustomerId = function(orderObservable, id)
{
var query = breeze.EntityQuery.from('OrdersByCustomerId')
.WithParameters({ CustomerId: id });
return manager.executeQuery(query)
.then(function(data) {
if (orderObservable) orderObservable(data.results);
}
.fail(function(e) {
logError('Retrieve Data Failed');
}
}
V Вы, наверное, знаете, что делать дальше отсюда..
Надеюсь, это поможет.
- 1. Ошибка блокировки с хранимой процедурой
- 2. проблемы с хранимой процедурой
- 3. Проблема с хранимой процедурой
- 4. проблема с хранимой процедурой?
- 5. помощь с хранимой процедурой
- 6. Ошибка кэширования кэша EclipseLink с хранимой процедурой
- 7. Ошибка .NET datetime с хранимой процедурой SQL
- 8. Ошибка таблицы обновлений с хранимой процедурой
- 9. Mysql ошибка синтаксиса с хранимой процедурой (верстак)
- 10. Разница между процедурой SQL и процедурой CLR?
- 11. Удалить Проблема с хранимой процедурой
- 12. Команда обновления с хранимой процедурой
- 13. Возвращающийся Макс с хранимой процедурой
- 14. Проблемы параллелизма с хранимой процедурой
- 15. Обновление записей с хранимой процедурой
- 16. Проблема с моей хранимой процедурой
- 17. Спецификация DDD с хранимой процедурой
- 18. Несколько проблем с хранимой процедурой
- 19. Dynamic SQl с хранимой процедурой
- 20. Проблемы с хранимой процедурой MYSQL
- 21. Что случилось с хранимой процедурой
- 22. Многочисленная вставка с хранимой процедурой
- 23. Поиск данных с хранимой процедурой
- 24. Проблема с хранимой процедурой NHibernate
- 25. Проблема с хранимой процедурой с параметрами
- 26. Разбиение страницы хранимой процедурой
- 27. SQL Server bcp с хранимой процедурой
- 28. Ошибка синтаксиса при создании хранимой процедуры CLR
- 29. Как бороться со хранимой процедурой?
- 30. Адаптер DB с хранимой процедурой в OSB
Необходимо увидеть код, показывающий, что работает, а что нет. –