比方說,我有一個模型,看起來像這樣(假的,但作爲一個例子)db4o的似乎並不存儲添加到列表中的項目<T>
public class PackageItem
{
public string Name { get; set;}
public bool Available { get; set;}
}
public class Package
{
public string Recipient { get; set;}
public List<PackageItem> Items { get; set;}
}
第一包裝的一個新的實例與剛剛創建收件人設置爲某個值。
一段時間後,(數據庫已經關閉之間),我從數據庫中 檢索和添加項目:
var packages = database.Query<Package>()
foreach(var package in packages)
{
package.Recipient = "Bla bla bla";
package.Items.Add(new PackageItem() { Name = "SomeName", Available = true });
database.Store(package);
}
database.Commit();
此時更改收件人的屬性被保存在數據庫 ,但對Items屬性的添加不是。
我發現有關db4o的一些信息,因爲對List的引用沒有改變,db4o不知道任何東西已經改變,db4o也不知道List對它自己的更改......這是正確的嗎?
如何使用db4o處理T列表?
* 更新:*我想執行
database.Store(package.Items);
會幫助,但事實並非如此。
這是Debian上全部採用了db4o V8使用Mono 2.11
database.Store(package.Items)不起作用。 .. – TimothyP
這很奇怪。你有一個運行的例子嗎? – Gamlor
我會試着去看看它是否可以單獨使用,但它是一個更大的系統的一部分,但它很奇怪。我使用database.Query來獲取對象,我使用for each循環遍歷它們,將一些項添加到列表中並將它們存儲(object.list和object本身),然後在我提交的循環之後。日誌記錄顯示了所有這些情況......但數據庫列表中沒有任何內容 –
TimothyP