2010-10-28 130 views
0
var user = new User() 
{ 
    Username = "a", 
    Password = "b", 
}; 

user.Save(); 

Console.WriteLine(user.ID)   // prints "504" 
Console.WriteLine(user.IsLoaded()) // prints "false" 

如果ID屬性自動上Save()設置,我希望IsLoaded()也被設置(以true)。爲什麼我的責任是致電user.SetIsLoaded(true);爲什麼在Save()時不會將IsLoaded設置爲true?

(我知道我可以編輯ActiveRecord.tt得到這個工作,但也許我只是不明白IsLoaded()實際上代表。)

回答

0

IsLoaded說你正在尋找的記錄代表數據庫中的數據。這例如用於檢測記錄是否髒。 IsLoaded == false記錄不能變髒,因爲它們不代表數據庫中的數據。 IsLoaded == true確實如此,因此在這樣的記錄上更改屬性會將其設置爲髒,並且可以再次保存記錄。

Subsonic 3 Save() then Update()?也描述了一些細節。

相關問題