存储的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存储在每个产品上。 –