簡體   English   中英

在 RavenDb 中引用值對象父實體 object

[英]Reference a value objects parent entity object in RavenDb

我最近一直在玩 RavenDB,有些事情讓我有點惱火。

我有一個帶有一系列值對象的實體 object,例如

class Foo
{
   IList<Bar> Bars { get; set; } 
}

有很多次我想將 Bar 類型的 object 傳遞給方法/類,但在某些時候想要引用回父實體。 在 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(以及一般的文檔數據庫)促進了一種不同的處理實體的方式,如果這只是我在關系/規范化世界中花費太長時間的一個例子,任何人都可以解釋我應該如何構建我的代碼以更多的文檔數據庫方式?

你當然可以這樣做:

class Bar
{
   Foo Foo { get; set; }
}

您只需要確保設置:

documentStore.Conventions.CustomizeJsonSerializer =
      serializer => serializer.ReferenceLoopHandling = ReferenceLoopHandling.Serialize;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM