Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按类型属性查询Cosmos数据库_C#_Azure_Azure Cosmosdb_Document Database - Fatal编程技术网

C# 按类型属性查询Cosmos数据库

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

在我的项目中,我想为一些类添加继承,并将生成的对象保存到Cosmos DB数据库中的documentcollection中。要保存有关类型的信息,请在JSON.net中使用此首选项:

但是,如何按类型查询集合,而不以类型安全的方式使用LINQ检索所有文档呢。最好是向那些名为例如
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))
,它将准确返回您所需的内容

如果你被卡住了,我建议你检查一下它是如何工作的。听起来正是你需要的

免责声明:我是宇航员的创造者