2

私はsimplememershipに自分のUsersテーブルを使用して、それにいくつかのデータを追加しようとしています。こちらのサンプルに基づいています-http://blog.osbornm.com/2010/07/21/using-simplemembership-with-asp.net-webpages/ このモデルでテーブルを作成しました:

 [Table("MyUsers")]

パブリッククラスMyUsers

[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string Gender { get; set; }
public DateTime DOB { get; set; }

私はそれを初期化しています:

  WebSecurity.InitializeDatabaseConnection("MyConnection", "MyUsers", "UserId", "UserName", autoCreateTables: true);

そして登録時に私は電話します:

  WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new MyUsers {DOB = DateTime.Now.AddYears(-31),Email = "my@mymail.com",Gender = "Male",UserName = model.UserName});

しかし、-このエラーが発生します:IDENTITY_INSERTがOFFに設定されている場合、テーブル'MyUsers'のID列に明示的な値を挿入できません。

VS2010でこれをオフにする方法はわかりませんが、なぜこのエラーが発生するのか、また何を修正すればよいのかわかりません。

感謝します。レガシーasp.netプロジェクトをMVCに移動できるかどうかをテストしようとしています。

サンスク

4

2 に答える 2

4

私の問題が見つかりました-それはCreateUserAndAccountにあり、キーを含むテーブルのすべてのフィールドに一致するクラスを使用しました。このようにすべきではありません。これは機能します:

 WebSecurity.CreateUserAndAccount(model.UserName, model.Password,new  {Gender="Mal",DOB = DateTime.Now.AddYears(-1),Email="mymy@trtr.com" });

ありがとう。

于 2013-03-02T16:20:35.863 に答える
0

これまでに行ったことは、ベースユーザーテーブルから拡張機能を構築することです。このため、UserId列は自動インクリメント列であってはなりません。INSERTベースユーザーテーブルからの実際のIDを外部キーとして試してみます。

于 2013-03-01T11:47:27.340 に答える