id 在 MS SQL 服务器的数据库中输入为 0

id entering as 0 in database in MS SQL Server

所以我在这里的代码有一些问题,因为我是 C# 和 linq 的新手。 我正在尝试将 id、icon_url 和计数值插入到我的数据库中。但是当我插入第一行时,id 设置为 0,当我添加另一行时,出现两个错误。我想自动递增 ID,因为它是主键并且是 int 类型。我怎样才能解决这个问题? 请参阅下面的代码和屏幕截图。

图像

数据库

数据库设计

错误 1

错误 2

代码:

bool imcount = db.dashboards.Any(dash => dash.icon_url.Contains(imageurl));
  if (imcount == false)
  {
    using (ECardModel db = new ECardModel())
    {


      dashboard imageCount = new dashboard()
      {

        icon_url = imageurl,
        count = 1
      };

      db.dashboards.Add(imageCount);
      db.SaveChanges();
    }
  }
  else if (imcount == true)
  {
    using (ECardModel db = new ECardModel())
    {
      int icount = db.dashboards.Where(dash => dash.icon_url.Contains(imageurl)).Max(dash => dash.count);

      dashboard imageCount = new dashboard()
      {
        count = icount + 1
      };
      db.dashboards.Add(imageCount);
      db.SaveChanges();
    }
  }

更新:

当我将标识规范设置为 "Yes" 时,它又给我一个错误。 请注意,我无法更新我的 .edmx 模型,因为它是 xml 格式并且没有显示模型图。此外,数字 0 仍插入数据库中。 请看下图。

您不能使用查询从前端更新任何列以自动递增。

您有 3 个选项:

选项 1:-
使用 SQL 管理工作室对其进行更新。

选项 2:- 删除您的专栏并创建新专栏。如果你当前table没有记录。 但这会改变您的列的顺序位置。

-- ID is the name of the  [to be] identity column
ALTER TABLE [yourTable] DROP COLUMN ID 
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)

选项 3:

您可以删除当前的 table 并重新创建它,并将列设置为 IDENTITY


CREATE TABLE [dbo].[table](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    ...
    CONSTRAINT [PK_table] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]