2010-10-28 129 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()?也描述了一些细节。

相关问题