2012-12-20 29 views
2

我正在學習RavenDB並熟悉事情的工作方式。我不明白的一件事是如何將烏鴉創建的id保存到一個屬性。如何在ravendb中設置uniqueid

public class User 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string ID { get; set; } //This will be null when I save object to DB I want it to be same as generated 
} 

[TestMethod] 
public void TestSaving() 
{ 
    using (var session = documentStore.OpenSession()) 
    { 
     var user = new User { FirstName = "John", LastName = "Doe" }; 
     session.Store(user); 
     session.SaveChanges(); //I want that property to save that id that raven created: Users/65 
    } 
} 

回答

6

我認爲烏鴉的默認約定找到身份屬性「ID」和區分大小寫。嘗試將您的媒體資源重命名爲ID,而不是ID。

1

再看一遍。立即在撥打session.Store(user)後,您會發現ID屬性已經爲您設置。即使在調用SaveChanges()之前。

更新

對不起,我沒有注意到你的財產的外殼。 Raven的默認約定是尋找一個名爲「Id」的屬性 - 區分大小寫。如果你想要一個不同的約定,可以改變烏鴉的默認值:

documentStore.Conventions.FindIdentityProperty = x => x.Name == "ID"; 

你可以閱讀更多有關默認約定here

+0

那麼爲什麼文檔中的實際屬性設置爲null? – user516883