В моем проекте я хочу добавить наследование для некоторых классов и сохранить созданные объекты в коллекции документов в базе данных Cosmos DB. Чтобы сохранить информацию о типе, я использую этот параметр в JSON.net: https://www.newtonsoft.com/json/help/html/SerializeTypeNameHandling.htm
Но как я могу запросить коллекцию по типу, не извлекая все документы с помощью LINQ безопасным способом. Лучше всего было бы добавить свойство к этим классам с именем, например, Type
, которое содержит информацию о свойстве «$ type» объекта JSON. Затем я могу запросить что-то вроде этого:
return Client.CreateDocumentQuery<TEntity>(DocumentCollectionUri).Where(entity => entity.Type == typeof(Car).ToString());
Этот запрос LINQ будет преобразован в SQL, а затем отправлен на сервер. Я получаю только те объекты типа автомобиля. Это было бы оптимально, возможно ли что-то подобное и быстро?