新しいASP.NET MVCアプリケーションを作成する際、私はまだアカウントを作成していない一時的なユーザのためにユーザが作成したデータを格納するために使用しているアプローチの問題があります私は実際のユーザーに変換しようとします。それはおそらくあまり意味が、ので、私が説明させていません:LINQ to SQL - テンポラリユーザを実際のユーザに変換する
- サイトへの訪問者は、ユーザ名の登録が行われる前に、プロファイル設定を入力することができ、パスワードなど
- 私は、データベースを作成していますこの場合、新しいユーザーのためにLINQ to SQL経由でエントリを作成し、一時ユーザー名としてRequest.AnonymousID値を使用します。
- ユーザーが登録を選択すると、関連するデータベースレコードを一時的なユーザー名の代わりに新しく入力したユーザー名を使用するように切り替える必要があります。
問題は...私は、ユーザー名が主キーであるので、私はできないレコードを更新しようとするので、ときに私はレコードを削除し、新しいものを追加することを余儀なくさだということです
私はおそらくこれで辛抱強くすることができますが、私はちょうど間違ったやり方でこのことをやっているかもしれないと思います。登録する前に訪問者に情報を保存させ、 。
プロフィールについては知っていますが、プロフィール情報を他の訪問者が利用できるようにしたいと考えています。私は匿名のプロファイルを作成できることも知っていますが、データモデルをweb.configファイルから外しておく必要があるようです。
多分、自動的にユーザーをログインされたときにも、ユーザーを識別することができるようになりますそのようにしますプライマリキーを更新することはできません。ただし、テーブル内の他のものと衝突しない限り、どのエラー/例外が表示されますか? – tomfanning
多分それはそうではありません。今の私の前にエラーはありませんが、削除しようとすると+代わりに「存在するエンティティに接続できません」というエラーが表示されます。 私はIDであるフィールドを持っているので、そのフィールドに新しい値を生成する問題があるかもしれません。私はまた、私が変更しようとしている2つのテーブルのユーザー名の間にFK関係があります。 – curlyfries
だから...ええと...ええ。おそらく、外来キーが問題であり、私はそれを削除しなければならないかもしれません。 – curlyfries