Ric*_*ani 1 c# relationship document-database ravendb
我正在接近文档数据库,但在以下情况下,我对如何映射文档关系有点困惑
public class Person
{
public Person()
{
}
public int Id { get; set; }
public string Name { get;set;}
public string Surname { get; set; }
public DateTime? BirthDate { get; set; }
}
public class Car
{
public Car() { }
public int Id { get; set; }
public string Name { get; set; }
public int PersonId { get; set;}
}
Run Code Online (Sandbox Code Playgroud)
例如,一个人拥有一辆或多辆汽车,我可以按如下方式查询数据库
public Car Get(int id)
{
Car car = null;
using (IDocumentSession session = store.OpenSession())
{
car = session.Include<Car, Person>(x => x.PersonId).Load<Car>(id);
bool isLoaded = session.Advanced.IsLoaded("people/" + car.PersonId); // true!
}
return car;
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,客户只发出一个请求,但是如果我有一个人并且我想显示他所有的汽车,我如何查询数据库来只执行一个请求?我想我必须修改模型List<int> Cars以Person供参考他的汽车。请注意,我不想嵌入Cars文档Person,因为Cars可以从其他文档中引用。
谢谢。
你可以这样做:
using (IDocumentSession session = store.OpenSession())
{
var carsForOne = session.Query<Car>()
.Include(x=>x.PersonId)
.Where(x=>x.PersonId == "people/1")
.ToList();
var person = session.Load<Person>("people/1");
}
Run Code Online (Sandbox Code Playgroud)
这仅发出一个数据库请求。
| 归档时间: |
|
| 查看次数: |
404 次 |
| 最近记录: |