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

さて、問題は、ユーザー オブジェクトのプロパティを変更できるようにしたいということです。次のいずれかを実行しても問題ありませんか。SaveChangesDbContextを呼び出すと、両方ともデータベースに保存されますか?

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

ユーザーはクラスなので、実際にユーザーをコピーするのではなく、そのユーザーへの参照 (またはポインターと呼ばれることもあります) をコピーするだけです。その参照の両方のコピーは、基になるオブジェクトへの変更を「認識」します。

于 2012-06-27T15:48:38.970 に答える