1

我只是想知道在 EntityState.Modified 之后是否存在更好的方法来获取数据库中的值。我的语法:

db.Entry(UserProfile).State = EntityState.Modified;
var olderPhoto = (string)db.Entry(UserProfile).GetDatabaseValues()["Photo"];

谢谢你最终的回答

4

2 回答 2

1

我认为有...:

db.Entry(UserProfile).State = EntityState.Modified;
var olderPhoto = db.Users.Find(UserProfile.UserID).Photo.ToString();
于 2013-07-27T10:30:29.593 回答
1

好吧,取决于。如果您无法控制实体何时被修改,并且您希望能够在修改后(但可能是在提交之前)获取旧值那么这几乎是您唯一的选择:从数据库中获取新值.

但是,如果您可以在修改之前简单地将原始内容存储在某个地方,那么您可以直接使用它而无需重新查询数据库。这里的问题是您必须将所需的任何和所有值显式存储到变量中,仅存储实体本身只会存储指向同一实例的指针。

var olderPhoto = UserProfile.Photo;

UserProfile.Photo = newPhoto;
db.Entry(UserProfile).State = EntityState.Modified;

// use olderPhoto
于 2013-05-22T20:38:29.090 回答