Недавно я играл с RavenDB, и что-то меня немного раздражает.
У меня есть объект сущности с рядом объектов-значений, например.
class Foo
{
IList<Bar> Bars { get; set; }
}
Несколько раз я хочу передать объект типа Bar в метод/класс, но в какой-то момент хочу сослаться на родительский объект. В мире NHibernate это очень просто, если я настрою его с отношением 1..*, например.
class Bar
{
Foo Foo { get; set; }
}
Однако RavenDb это не очень нравится, из-за чего мне приходится создавать такие методы, как:
void DoSomething(Foo foo, Bar bar)
{
Console.WriteLine(foo);
Console.WriteLine(bar);
}
скорее, чем
void DoSomething(Bar bar)
{
Console.WriteLine(bar.Foo);
Console.WriteLine(bar);
}
Есть ли способ добиться этого с помощью RavenDb?
Я понимаю, что RavenDb (и базы данных документов в целом) продвигают другой способ мышления о работе с сущностями, если это просто тот случай, когда я слишком долго провожу в реляционном/нормализованном мире, может ли кто-нибудь объяснить, как я должен структурировать свой код более документально?