0

を使用して新しいユーザーを登録する方法がありますWebSecurity.CreateUserAndAccount(model.UserName, model.Password)。問題は、UserProfileモデルにGUIDキーを追加したことです。私のローカル マシンでは、このメソッドを呼び出すと空の Guid が読み込まれます。ただし、Azure では、次のエラーが発生します。

   System.Data.SqlClient.SqlException (0x80131904): Cannot insert the value NULL into column 'Key', table 'Scheduler.dbo.UserProfile'; column does not allow nulls. INSERT fails.

ここで、モデルのコンストラクターで新しい GUID を生成しようとしましたが、手動でSet{}新しい GUID を生成すると、同じエラーが発生します。

次のような CreateUserAndAccount オーバーロードを使用しようとすると:

 WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { Key = Guid.NewGuid() });

次の構文エラーが発生します (実行時)。

 Incorrect syntax near the keyword 'Key'.

私はこれを理解しようとして午前中のかなりの時間を費やしましたが、できません。ところで、上記の方法はすべて空の GUID00000000-0000-0000-0000-000000000000になり、オーバーロードによってローカル マシンで構文エラーが発生します。

4

1 に答える 1

0

「キー」は SQL の予約語です。[キー] のように括弧で囲んで使用する必要があります。

WebSecurity が SQL クエリを生成する方法を制御できないため、唯一のオプションは、名前を UserKey などに変更することです。

于 2013-12-12T10:36:49.487 に答える