請嘗試格式化公司在你的問題中,並重新描述你正在嘗試做的事情。目前尚不清楚,如果你期待的是節約w2
應該指的是同一個對象w1
,但他們都沒有 - 即使ID相同是烏鴉不會如何處理刪除。您需要刪除您剛纔保存立即調用的SaveChanges後(我不明白你爲什麼會想這樣做)的對象,或者更有可能的情況Load
它在某一點以後,然後調用Delete
:
var w1Id = string.empty;
using(session)
{
var w1 = new WordOccurrence { Word="Hey", Occurrence=1};
session.store(w1);
session.SaveChanges();
w1Id = w1.Id;
//if you aren't declaring the Id property for some reason...
w1Id = session.Advanced.GetDocumentId(w1);
}
//somewhere else in the code
using(session)
{
var w1 = session.Load<WordOccurrence>(w1Id);
session.Delete(w1);
session.SaveChanges();
}
底線是,你不能刪除你剛纔告訴會話Store
,你甚至稱SaveChanges
之前。如果你想撤消Store
操作,也許是因爲用戶打一個撤銷按鈕,只是不叫SaveChanges
(如果它是在會話中唯一的操作),或者使用Session.Advanced.Evict(w1)
來EVIT從會話對象。
如果您希望Word屬性是文檔的Id,那麼可以通過customizing the DocumentStore conventions