C# 按类型属性查询Cosmos数据库
在我的项目中,我想为一些类添加继承,并将生成的对象保存到Cosmos DB数据库中的documentcollection中。要保存有关类型的信息,请在JSON.net中使用此首选项: 但是,如何按类型查询集合,而不以类型安全的方式使用LINQ检索所有文档呢。最好是向那些名为例如C# 按类型属性查询Cosmos数据库,c#,azure,azure-cosmosdb,document-database,C#,Azure,Azure Cosmosdb,Document Database,在我的项目中,我想为一些类添加继承,并将生成的对象保存到Cosmos DB数据库中的documentcollection中。要保存有关类型的信息,请在JSON.net中使用此首选项: 但是,如何按类型查询集合,而不以类型安全的方式使用LINQ检索所有文档呢。最好是向那些名为例如Type的类添加一个属性,该类包含JSON对象的“$Type”属性的信息。然后我可以查询如下内容: return Client.CreateDocumentQuery<TEntity>(Docum
Type
的类添加一个属性,该类包含JSON对象的“$Type”属性的信息。然后我可以查询如下内容:
return Client.CreateDocumentQuery<TEntity>(DocumentCollectionUri).Where(entity => entity.Type == typeof(Car).ToString());
return Client.CreateDocumentQuery(DocumentCollectionUri).Where(entity=>entity.Type==typeof(Car.ToString());
此LINQ查询将被转换为SQL,然后发送到服务器。我只拿回那些车型的东西。这将是最理想的,像这样的东西是否可能且快速?您需要它的
tenty
属性来实现某种类型的接口,让我们来看看icosmentity
,它有一个EntityType
属性,它是一个字符串
然后所有的tenty
对象都需要实现这个接口,它们将nameof(tenty)
设置为EntityType
这样,您可以使您的查询表如下所示:return Client.CreateDocumentQuery(DocumentCollectionUri).Where(entity=>entity.EntityType==nameof(Car))
,它将准确返回您所需的内容
如果你被卡住了,我建议你检查一下它是如何工作的。听起来正是你需要的
免责声明:我是宇航员的创造者。您需要它的
tenty
属性来实现某种类型的接口,让我们来看看icoscommentity
,它有一个EntityType
属性,它是一个字符串
然后所有的tenty
对象都需要实现这个接口,它们将nameof(tenty)
设置为EntityType
这样,您可以使您的查询表如下所示:return Client.CreateDocumentQuery(DocumentCollectionUri).Where(entity=>entity.EntityType==nameof(Car))
,它将准确返回您所需的内容
如果你被卡住了,我建议你检查一下它是如何工作的。听起来正是你需要的
免责声明:我是宇航员的创造者