我只是想知道在 EntityState.Modified 之后是否存在更好的方法来获取数据库中的值。我的语法:
db.Entry(UserProfile).State = EntityState.Modified;
var olderPhoto = (string)db.Entry(UserProfile).GetDatabaseValues()["Photo"];
谢谢你最终的回答
我只是想知道在 EntityState.Modified 之后是否存在更好的方法来获取数据库中的值。我的语法:
db.Entry(UserProfile).State = EntityState.Modified;
var olderPhoto = (string)db.Entry(UserProfile).GetDatabaseValues()["Photo"];
谢谢你最终的回答
我认为有...:
db.Entry(UserProfile).State = EntityState.Modified;
var olderPhoto = db.Users.Find(UserProfile.UserID).Photo.ToString();
好吧,取决于。如果您无法控制实体何时被修改,并且您希望能够在修改后(但可能是在提交之前)获取旧值,那么这几乎是您唯一的选择:从数据库中获取新值.
但是,如果您可以在修改之前简单地将原始内容存储在某个地方,那么您可以直接使用它而无需重新查询数据库。这里的问题是您必须将所需的任何和所有值显式存储到变量中,仅存储实体本身只会存储指向同一实例的指针。
var olderPhoto = UserProfile.Photo;
UserProfile.Photo = newPhoto;
db.Entry(UserProfile).State = EntityState.Modified;
// use olderPhoto