为什么在Save()时IsLoaded不设置为true?

时间:2010-10-28 19:51:15

标签: c# subsonic subsonic3

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);

(我知道我可以编辑ActiveRecord.tt以使其正常工作,但也许我只是不明白IsLoaded()实际代表什么。)

1 个答案:

答案 0 :(得分:0)

IsLoaded表示您正在查看的记录表示数据库中的数据。例如,这用于检测记录是否脏。 IsLoaded == false个记录不会变脏,因为它们不代表数据库中的数据。 IsLoaded == true会这样做,因此更改此类记录的属性会将其设置为脏,您可以再次保存记录。

Subsonic 3 Save() then Update()?还描述了一些细节。