При внедрении службы oData с использованием WebApi 2.0 стандартная практика заключается в том, чтобы выставить IQueryable из вашей службы в действие ApiControllers. Таким образом, структура может применить запрос oData к вашему IQueryable.запросы oData и одноразовое SQL-соединение
В настоящее время я читаю, как важно всегда вызывать Dispose при подключении к базе данных. Предпочтительно, используя «используя» заявление так:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Execute operations against the database
} // Connection is automatically closed.
Мой вопрос: Когда соединение с базой данных закрыты в случае OData? Вы, очевидно, не можете распоряжаться этим соединением самостоятельно, прежде чем среда применит запрос oData - это вызовет исключение.
Сопутствующая тема была бы: вы согласны с тем, чтобы разоблачить IQueryable <> от ваших услуг? Я читал об этом, и это долгая дискуссионная проблема - люди утверждают, что работа с базой данных должна содержаться в репозитории, в то время как другие хотели бы предоставить свободу запросов клиентам услуг. Я согласен с тем, что содержит запросы в репозитории, но в случае oData мне не нравится чрезмерно усложнять ситуацию, если инфраструктура проверяет IQueryable, тогда я даю ей IQueryable. Как вы думаете ?