[英]How to get one or more array elements in MongoDB using a Linq expression
我正在研究使用 MongoDB、C# dotnet 和 Linq 进行搜索的人的注册表。 这条记录有一个人的地址数组,我需要按邮政编码进行查询,以返回与搜索的邮政编码相同的所有记录。
这是我的课
public class Retailer : Entity<Retailer>
{
public PersonType PersonType { get; private set; }
public string CompanyName { get; private set; }
public string TradingName { get; private set; }
public IReadOnlyCollection<RetailerAddress> Adresses
{
get { return _adressesList.ToArray(); }
set { _adressesList = value.ToList(); }
}
.
.
.
Other methods omitted for brevity
.
.
.
}
这是 MongoDB 中持久化的对象
{
"_id": "58beb0c5-950d-443b-943d-1580a5dfa223",
"createdDate": "2022-07-13T17:27:50.7567299-03:00",
"active": true,
"PersonType": "PJ",
"CompanyName": "Rotisseria Coma e Viva",
"TradingName": "Coma e viva",
"Adresses": [
{
"_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdDate": "2022-07-13T17:27:50.745713-03:00",
"active": true,
"RetailerId": "58beb0c5-950d-443b-943d-1580a5dfa223",
"Street": "Av Principal",
"Number": "395",
"Neighborhood": "Vila Soco",
"Complement": "Em Frente A Farmácia",
"City": "Santo André",
"ZipCode": "09190000",
"IbgeCityCode": "3547809",
"State": "SP",
"Country": "BR"
},
{
"_id": "3fa85f64-5717-4562-b3fc-2c963f66afa7",
"createdDate": "2022-07-13T17:27:50.745713-03:00",
"active": false,
"RetailerId": "58beb0c5-950d-443b-943d-1580a5dfa223",
"Street": "Av Secondary",
"Number": "395",
"Neighborhood": "Vila Country",
"Complement": "Ao lado do posto de gasolina",
"City": "Pirapora",
"ZipCode": "09190000",
"IbgeCityCode": "3547809",
"State": "SP",
"Country": "BR"
}
]
}
我想得到所有活跃的人,他们也有一个活跃的地址和一个等于 09190000 的邮政编码。我尝试使用这样的 linq 表达式:
var result = await _retailerRepository.GetAsync(retailer => retailer.Active && retailer.Adresses.Where(address => address.ZipCode == zipCode));
但我收到此错误消息:运算符'&&'不能应用于'bool'和'IEnumerable'类型的操作数
我应该如何更正此消息并返回包含搜索到的邮政编码的所有记录?
var result = await _retailerRepository.GetAsync(retailer => retailer.Active && 零售商.Adresses.Any(address => address.ZipCode == zipCode));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.