質問: await PersonService.GetByIdAsync(id); } } ```
回答: まず、オブジェクトを`EditForm`モデルとして配置し、それに変更を加えると、すべての変更はすぐにオブジェクトに反映されますが、送信をクリックした後は反映されません。次に、データベースからオブジェクトをプルすると、DbContextにアタッチされ、明示的にデタッチしない限り、アタッチされたままになります。すでにコンテキストにアタッチされているエンティティをクエリすると、コンテキストはデータベースに再度クエリを実行せず、アタッチされたエンティティを提供します。そして、それにいくつかの変更を加えた場合、これらの変更が適用されます。しかし、それらの変更は`context.SaveChanges`を実行するまでデータベースに保存されないため、実際のデータベースを表示すると、変更されていないデータが表示されます。 Net Core MVCとの違いは、Net Core MVCがステートレスであることです。 `.cshtml`ファイルで.NETオブジェクトへの参照を使用しますが、それらは1つのクエリ中にのみ使用され、応答がクライアントに送信された後に破棄されます。 Blazorを使用すると、サーバー(Blazorサーバー)またはクライアント(Blazor wasm)で実際の.NETランタイムイーサーを取得できるため、オブジェクトが残り、状態が保持されます。