RavenDB动态收藏访问
本文关键字:访问 收藏 动态 RavenDB | 更新日期: 2023-09-27 18:26:24
我有老板写的一些古怪的动态网格函数的请求对象。此请求对象中的属性之一是实体的名称或进入web api控制器的文档存储的集合名称。
IDocumentQuery<T> context = session.Advanced.DocumentQuery<T>();
context = AddSearchToContext(context, _searchRequest.Search, _searchRequest.DataFilters.Any());
context = AddFiltersToContext(context, _searchRequest.DataFilters);
context.Take(1).ToList();
RavenQueryStatistics stats = null;
context.Statistics(out stats);
return stats.TotalResults;
现在,出于测试目的,我有一些代码看起来像这样,到目前为止还不错,但我的主要问题是T的类型。raven api需要该类型来实现要检查的集合。我的问题是,我只有一个实体名称的字符串,而不是类型,到目前为止,我唯一的想法是为每种类型反复编写一个巨大的switch语句,其中充满相同的代码。
有没有一种"动态"或通用的方法可以避免在switch语句中一遍又一遍地重复我的所有代码?我可以使用反射吗?任何提示都会有帮助,谢谢。
您可以使用"object",并使用强制查询
IDocumentQuery<object> context = session.Advanced.DocumentQuery<object>("dynamic/" + collectionName);