1

編集:投稿を更新しましたが、これについてはまだ助けが必要です。

質問は、正しい ID でユーザーを追加しないのはなぜですか?

私は WebAPI を使用していますが、Fiddler 経由で POST リクエストを行うたびに、間違った ID を持つユーザーが追加されます。

Entity Framework で POCO クラス (ユーザー) の ID を自動生成してインクリメントしましたが、ID 1 のユーザーを追加する代わりに、データベースにユーザーが既に存在する場合に機能し、ID のユーザーを作成するだけです。インスタンス 16。

Visual Studio のサーバー エクスプローラーでテーブルを確認したところ、テーブルを右クリックして [テーブル データの表示] を選択しましたが、何も表示されませんでした。

ソリューションをクリーンアップして再構築しようとしましたが、テーブルにユーザーがいるかどうかを確認しましたが、ユーザーはいませんでした。

これは、Web.config ファイルの接続文字列です。

 <add name="ConnectoDbContext" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=CONNECTO_f8dc97e46f8b49c2b825439607e89b59;Integrated Security=True;AttachDbFilename=|DataDirectory|\Connecto.mdf" />

新しい DB には Code First アプローチを使用しました。

また、Microsoft SQL Server 2012、SQL Server Management Studio を確認したところ、CWS.Models.ConnectoDbContext という名前の DB が表示されるため、同じものであると想定しています。ただし、矛盾が発生したことを認めなければなりません。ソリューションにテーブルがなくなったにもかかわらず、古いテーブルが含まれることがあります。

SQL Server Management Studio で、UserId が ID 列であることを確認しました。Visual Studio で UserId 列も確認したところ、Is Identity: True.

DBCC CHECKIDENT ("[User]", NORESEED);Visual Studio と SQL Server Management Studio の両方で以下を実行しました。

SQL Server Management Studio は次を返します。

Checking identity information: current identity value 'NULL', current column value 'NULL'. DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Visual Studio は次を返します。

Checking identity information: current identity value '16', current column value 'NULL'. DBCC execution completed. If DBCC printed error messages, contact your system administrator.

どちらも異なるものを返しているため、「接続」されていないと思われます。同じDBではありませんか?

どんな助けでも大歓迎です

/2回

4

1 に答える 1

1

ID 列を再シードする必要があります。

DBCC CHECKIDENT ("[TableName]", NORESEED);

他のインスタンスにデータがある場合は、これを行うことに注意してください (後でキーが重複する可能性があります)。

于 2013-04-26T19:49:08.903 に答える