C # - .NET - кросс-раздел запроса требуется, но отключается, когда я получаю - PullRequest
0 голосов
/ 23 января 2019

Я создаю веб-API с ядром .net и API-интерфейсом CosmosDb SQL. Мой метод записи работает, но когда я пытаюсь получить данные из базы данных, я получаю сообщение об ошибке «Запрос на перекрестные разделы требуется, но отключен».

Я использую ядро ​​Entity Framework для cosmosdb SQL, и я нашел «решение», использующее опции подачи для включения перекрестного разделения, но я не использую запрос так же, как в «решении», которое я нашел. Так что я понятия не имею, куда вставлять варианты подачи, или это правильное решение для меня.

Нажмите здесь для "решения", которое я нашел.

Получить метод в SensorController.cs:

    [HttpGet]
    public ActionResult<IEnumerable<Sensor>> Get()

    {

        var bookmarks = _sensorContext.Sensors.ToList();

        return Ok(bookmarks);

    }

SensorContext.cs:

    public SensorContext(DbContextOptions options) : base(options)
    {
    }


    public DbSet<Sensor> Sensors { get; set; }
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Sensor>();
        var sensors = modelBuilder.Entity<Sensor>().Metadata;
        sensors.CosmosSql().CollectionName = "Sensors";
    }

Я ожидал получить список всех датчиков в моей базе данных, но вместо этого я просто получаю сообщение об ошибке перекрестного источника.

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Похоже, что вы используете старую версию CosmosDB Entity Framework. Обязательно загрузите последний пакет NuGet, который в настоящее время:

dotnet add package Microsoft.EntityFrameworkCore.Cosmos -v 3.0.0-preview.18572.1

После этого вы можете попробовать следующее прохождение: Объявление Entity Framework Core 2.2 Preview 3

Мне удалось создать и получить документы, выполнив действия, указанные в ссылке выше.

0 голосов
/ 23 января 2019

Если ваши sensors данные настолько малы, что вы можете вернуть все их в рамках одного HTTP-запроса, вам, вероятно, не нужен ключ раздела в коллекции.

В настоящее время невозможно указатьключ раздела при использовании EntityFramework для доступа к CosmosDB.Похоже, что они рассматривают это для версии 3 - см. Этот выпуск Github

3.0 Предварительный просмотр 3

  • [..]
  • API для настройки фасетов коллекции документов (для ключей разделения, RU, размера)
  • Обработка ключа разделения в запросах

Открытые проблемы

  • [..]
    • Как мы должны обрабатывать запросы, для которых требуются параметры фида для разных разделов?
...