1

我可以在下面的代码中访问修改后的关闭错误

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

现在,问题是我希望能够修改用户对象的属性。如果我执行以下任一操作是否重要。SaveChanges当我调用DbContext时,它们都会保存到数据库中吗?

user.Property = 1;

或者

theUser.Property = 1;
4

3 回答 3

3

是的。User在这种情况下,很可能是 referencec 类型,因此该类型的变量只是指向实例的引用。赋值只是将另一个变量更改为指向同一个实例。

于 2012-06-27T15:46:48.480 回答
2

这些是引用类型。所以这两个变量都指向同一个对象。Property在这两种情况下都会改变。

于 2012-06-27T15:47:05.127 回答
2

User 是一个类,因此您实际上并没有复制用户,您只是将引用(或指针,有时称为)复制到该用户。该引用的两个副本都将“看到”对基础对象的任何更改。

于 2012-06-27T15:48:38.970 回答