我在
代码中有访问修改后的闭包错误foreach (var user in Entities.User)
{
bool any = Entities.Person.Any(
p => p.Name == user.Name);
}
所以我把它改成了
foreach (var user in Entities.User)
{
User theUser = user;
bool any = Entities.Person.Any(
p => p.Name == theUser.Name);
}
现在,问题是我希望能够修改用户对象的属性。如果我执行以下任一操作是否重要。当我在DbContext上调用SaveChanges
时,它们都会保存到数据库吗?
user.Property = 1;
或
theUser.Property = 1;
答案 0 :(得分:3)
是。在这种情况下,User
很可能是referencec类型,因此该类型的变量只是指向实例的引用。赋值只是将另一个变量更改为指向同一个实例。
答案 1 :(得分:2)
这些是参考类型。所以这两个变量都指向同一个对象。在这两种情况下都会更改Property
。
答案 2 :(得分:2)
用户是一个类,所以你实际上并没有复制用户,你只是将一个引用(或一个指针,有时也称为它)复制给该用户。这两个引用的副本都将“看到”对底层对象的任何更改。