RavenDB:如何将 session.Query 转换为 session.Advanced.DocumentQuery?
RavenDB: how to transform a session.Query into a session.Advanced.DocumentQuery?
我在 ravendb 数据库中存储了以下 类 的对象:
public class Continent
{
public string Name { get; set; }
public List<Country> Countries{ get; set; }
}
public class Countries
{
public string Name { get; set; }
public List<Province> Provinces{ get; set; }
}
public class Province
{
public string Name { get; set; }
public List<Province> Cities { get; set; }
}
public class City
{
public string Name { get; set; }
public string Address { get; set; }
}
多亏了 post(RavenDB:如何检索嵌套集合中的顶级节点?)我学会了如何使用 session.Query 从数据库中检索所有拥有城市的大陆名称和地址分别设置为 "aloma" 和“123”。我想使用 session.Advanced.DocumentQuery 编写相同的查询。那么你能告诉我如何将以下查询转换为 session.Advanced.DocumentQuery 吗: var continents = session.Query() .Where(x=>x.Countries.Any(country => country.Provinces.Any (p=>p.Cities.Any(城市 => city.Name == "123" && city.Address == "aloma"))).OfType().ToList(); ?
请注意,这可能不是执行此操作的最佳方法,但这是我知道的唯一方法。另外,请注意以下内容将在执行后创建一个索引。
var results = session.Advanced.DocumentQuery<Continent>().Where("Countries,Provinces,Cities,Name: 123 AND Countries,Provinces,Cities,Address: aloma").ToList();
使用的模型结构:
public class Continent
{
public string Id { get; set; }
public string Name { get; set; }
public List<Country> Countries { get; set; }
}
public class Country
{
public string Name { get; set; }
public List<Province> Provinces { get; set; }
}
public class Province
{
public string Name { get; set; }
public List<City> Cities { get; set; }
}
public class City
{
public string Name { get; set; }
public string Address { get; set; }
}
我在 ravendb 数据库中存储了以下 类 的对象:
public class Continent
{
public string Name { get; set; }
public List<Country> Countries{ get; set; }
}
public class Countries
{
public string Name { get; set; }
public List<Province> Provinces{ get; set; }
}
public class Province
{
public string Name { get; set; }
public List<Province> Cities { get; set; }
}
public class City
{
public string Name { get; set; }
public string Address { get; set; }
}
多亏了 post(RavenDB:如何检索嵌套集合中的顶级节点?)我学会了如何使用 session.Query 从数据库中检索所有拥有城市的大陆名称和地址分别设置为 "aloma" 和“123”。我想使用 session.Advanced.DocumentQuery 编写相同的查询。那么你能告诉我如何将以下查询转换为 session.Advanced.DocumentQuery 吗: var continents = session.Query() .Where(x=>x.Countries.Any(country => country.Provinces.Any (p=>p.Cities.Any(城市 => city.Name == "123" && city.Address == "aloma"))).OfType().ToList(); ?
请注意,这可能不是执行此操作的最佳方法,但这是我知道的唯一方法。另外,请注意以下内容将在执行后创建一个索引。
var results = session.Advanced.DocumentQuery<Continent>().Where("Countries,Provinces,Cities,Name: 123 AND Countries,Provinces,Cities,Address: aloma").ToList();
使用的模型结构:
public class Continent
{
public string Id { get; set; }
public string Name { get; set; }
public List<Country> Countries { get; set; }
}
public class Country
{
public string Name { get; set; }
public List<Province> Provinces { get; set; }
}
public class Province
{
public string Name { get; set; }
public List<City> Cities { get; set; }
}
public class City
{
public string Name { get; set; }
public string Address { get; set; }
}