存儲的ID列表的父文檔中如果我有一個可以有多個孩子,如Store
可以有多個Product
個父文檔有存儲在Store
的Product.Id
一個列表中的任何更簡單的方法文件?更簡單的方法使用RavenDB
當前我只是先存儲Product
對象,然後遍歷它們以獲得Store.ProductIds
屬性的Product.Id
。
商店
3210產品
class Product
{
public string Id { get; set; }
public string Name { get; set; }
}
當前工作保存方法
var store = new Store()
{
Name = "Walmart",
Products = new List<Product>
{
new Product {Name = "Ball"},
new Product {Name = "Bat"}
}
};
using (var session = DocumentStore.OpenSession())
{
foreach (var product in store.Products)
{
session.Store(product);
}
session.SaveChanges();
var list = new List<string>();
foreach (var product in store.Products)
{
list.Add(product.Id);
}
store.ProductIds = list;
session.Store(store);
session.SaveChanges();
}
這很有道理,我將不得不再探索一下,看看最適合我的場景的是什麼。我將產品分成單獨集合的原因僅僅是因爲我聽到了[Herding Code](http://herdingcode.com/?p=493)podcast的建議,其中一位開發人員[ MarkedUp](https://markedup.com/)建議當內部對象的數量變大時不要使用內部對象集合,我忘記了確切的數字。感謝設計諮詢! –
同意。事實上,您可能想要反轉關係並在每個產品上存儲StoreIds列表。或者你可能需要一個單獨的'Inventory'對象來綁定一個StoreId,ProductId和一個Quantity。 –
好點。我可能會繼續前進,移動關係並將StoreIds存儲在每個產品上。 –