【发布时间】:2020-10-16 09:46:17
【问题描述】:
我在 .NET Core 3.1 中为 Azure Cosmos DB 使用 DocumentClient。我的示例查询是:
var results = await _cosmosClient
.CreateDocumentQuery<Employee>(_documentCollectionUri, FeedOptionsProvider.DefaultOptions<Employee>())
.Where(x => x.IdentityId == identityId)
.AsDocumentQuery()
.GetResponse();
这段代码有很大的问题,因为如果数据库中有另一个文档具有通过条件,但是另一种类型,那么响应将包含该对象。我知道 lambda 表达式仅限于泛型类型的公共属性,但是是否有可能隐式添加检查类型正确性?数据库对象具有Discriminator 之类的属性,包含实体类型,但在 lambda 表达式中不可见。我想要的行为是检查此Discriminator 属性的条件,而对象模型中没有此属性。该怎么做?
【问题讨论】:
标签: c# .net linq .net-core azure-cosmosdb