需要一些帮助来创建generic按名称选择字段的方法。
像这样的东西:
T GetDocField<T>(string doc_Id, string fieldName)
我得到的最好的就是使用投影这给了我只设置了所需字段的文档:
public T GetDocField<T>(string Doc_Id, string fieldName)
{
var value = DocCollection.Find(d => d.Id == Doc_Id)
.Project<T>(Builders<Doc>.Projection
.Include(new StringFieldDefinition<Doc>
(fieldName))).FirstOrDefaultAsync().Result;
note:我正在使用新的 C# 驱动程序(2.0)
Thanks!!
您可以执行以下操作:
public async Task<TValue> GetFieldValue<TEntity, TValue>(string id, Expression<Func<TEntity, TValue>> fieldExpression) where TEntity : IEntity
{
var propertyValue = await collection
.Find(d => d.Id == id)
.Project(new ProjectionDefinitionBuilder<TEntity>().Expression(fieldExpression))
.FirstOrDefaultAsync();
return propertyValue;
}
并称之为
var value = await GetFieldValue<Item, string>("111", x => x.Name);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)