2012-08-23 32 views
-1

我有以下對象: WordOccurrence,它有兩個屬性: - 串詞。 - int發生次數。 (): 我想做以下事情,沒有得到任何懷疑( - : WordOccurrence w1 = new WordOccurrence(){Word =「Hey」,Occurrence = 1}; WordOccurrence w2 = new WordOccurrence(){Word =「Hey」 ,發生= 1};C#RavenDB刪除

現在我想用來存儲第一個,W1,但與W2刪除他

session.store(W1); 使用Session.delete(W2); - >得到感覺...

是否有可能??

回答

1

請嘗試格式化公司在你的問題中,並重新描述你正在嘗試做的事情。目前尚不清楚,如果你期待的是節約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