1

编辑:更新的帖子,仍然需要帮助。

问题是为什么没有添加具有正确 ID 的用户?

我正在使用 WebAPI,每当我通过 Fiddler 发出 POST 请求时,它都会添加一个 ID 不正确的用户。

我有实体框架来自动生成和增加我的 POCO 类(用户)的 ID,而不是添加 ID 为 1 的用户,如果数据库中已经有用户,它现在会起作用,并且只创建 ID 为 for实例 16。

我检查了 Visual Studios Server Explore 中的表格,我在其中右键单击表格并选择Show Table Data,但什么也没有。

我试图清理和重建解决方案,并检查表中是否有任何用户但没有。

这是我在 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" />

我对新数据库使用了 Code First 方法。

我还检查了 Microsoft SQL Server 2012、SQL Server Management Studio,在那里我看到了一个名为 CWS.Models.ConnectoDbContext 的数据库,所以我假设它是同一个。但是我必须承认我经历过不一致,有时即使我的解决方案中不再有旧表,它也会有旧表。

在 SQL Server Management Studio 中,我检查了 UserId 是一个身份列。在 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.

They are both returning something different which makes me believe that they're not "connected" as in, it's not the same DB?

Any help would be greatly appreciated

/twice

4

1 回答 1

1

You'll need to re-seed the identity column:

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

Be wary of doing this if you have data in there in other instances (could lead to duplicate keys later on).

于 2013-04-26T19:49:08.903 回答