2017-02-07 2 views
2

Я использую C# для запуска операций на экземпляре DocumentDB и действительно так нравится. У меня есть много кода на C#, который запрашивает несколько коллекций для создания новых коллекций из отношений между двумя первыми коллекциями.Как я могу использовать хранимые процедуры в DocumentDB, которые используют несколько коллекций

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

Можно ли каким-либо образом ссылаться на несколько коллекций в хранимой процедуре?

Было бы проще найти более простой способ узнать, что принадлежит каждой «коллекции», если я храню все в одной коллекции?

ответ

4

Хранимые процедуры выполняются внутри одной коллекции (или одного раздела в секционированной коллекции). Вызов хранимой процедуры может работать только с данными в этой коллекции/разделе.

Когда я вижу этот вопрос, я обычно задаюсь вопросом, думаете ли вы о коллекциях как о прямом аналоге таблиц из мира SQL или даже о использовании слова «коллекция» из мира MongoDB. В DocumentDB лучше не отделять свои данные по типу, а скорее смешивать данные разных типов в одной коллекции и отделять их по какой-либо другой граничной границе, например, арендатора, пользователя, географии и т. Д. Если вы это сделаете, хранимой процедуре не нужно пересекать границу арендатора, пользователя или географию, она сможет предоставить вам транзакции с перекрестными документами ACID.

+0

Спасибо за ответ! На самом деле, достаточно смешно, я действительно использовал слово «коллекция», чтобы понимать, что это означает в C# («IEnumerable» в моем случае). Я очень ценю ваш ответ, потому что это помогло мне понять мое понимание проблемы. Как люди обычно различают типы документов в коллекции? Просто свойство 'type'? –

+0

Кроме того, один из полезных результатов, как я установил это, заключается в том, что он действительно играл на моей настольной перспективе, как вы сказали, при переносе этих данных в Power BI. Я новичок в этой программе, но я предполагаю, что все еще могу получить отдельные таблицы для разных типов коллекций, делая преобразования в силе bi –

+1

Рад помочь !!! Да, свойство типа является общим. Однако я предпочитаю использовать метод IsMyType = true. Это даст мне модель наследования и микшинов. Не уверен в PowerBI, но я подозреваю, что вам нужно обработать его запросом. Возможно, задайте другой вопрос. –

Смежные вопросы