Я сохраняю объект dynamic
в моей базе данных, но я также хотел бы получить его как динамический объект. Как это может быть сделано? Я пробовал так:Query mongodb collection as dynamic
public dynamic GetItemById(ObjectId id)
{
dynamic result = Db.GetCollection<dynamic>("Items").Find(x => x.Id == id).FirstOrDefaultAsync().Result;
return result;
}
Но это дает мне следующую ошибку:
CS1963 An expression tree may not contain a dynamic operation
Я знаю, что это может быть исправлено с помощью типизированного объекта, а не динамический. Но я не хочу использовать какие-либо типизированные объекты, потому что этот вид побеждает всю цель использования базы данных NoSQL, такой как MongoDB (или, по крайней мере, imho).
Как я могу запросить мои коллекции по Id
или любому другому имуществу в этом отношении, используя dynamic
объектов?
Какую версию драйвера C# вы используете? AFAIK, драйвер C# <2.0 не поддерживает 'dynamic', но посмотрите [этот ответ] (http://stackoverflow.com/a/21715037/4544845), возможно, это то, что вы ищете - особенно последний комментарий, который упоминает 'ExpandoObject'. –
@ felix-b Я использую 2.0. Вот почему я также смог сохранить «динамический» объект в первую очередь :) Попытался сделать это с помощью «ExpandoObject», но вы также не можете сделать запрос «Filter» с этим. – Vivendi