【发布时间】:2021-12-18 01:03:51
【问题描述】:
我有以下模型从数据库中获取数据:
public class CultureResource
{
public string KeyName { get; set; }
public List<Resource> Resources { get; set; }
}
public class Resource
{
public string Value { get; set; }
public string Culture { get; set; }
}
现在我的目标是获取keys 和culture 列表的数据,其中keys 与CultureResource.KeyName 匹配,culture 与Resource.Culture 匹配。如何在 IQueryable<CultureResource> 上编写 linq 查询以获得 IList<Result> 的结果,其中 Result 可能如下所示:
public class Result
{
public string KeyName {get; set;}
public string Value {get; set;}
}
我尝试了以下 Linq,但它会抛出 $project or $group does not support {document}. 错误:
public IDictionary<string, string> GetLocalizedValueList(string[] keys, string culture)
{
// returns IQueryable<CultureResource>
var cultureResources = _repository.GetItems<CultureResource>();
/***** This is the query *********/
var query = from cr in cultureResources
from r in cr.Resources
where keys.Contains(cr.KeyName) && r.Culture == culture
select new { cr.KeyName, r.Value };
var result = query.ToList()
//return some data
}
仅供参考:我的底层数据库是 mongo
【问题讨论】:
标签: c# .net linq .net-core mongodb-query