MS SQL Server 数据库中的 id 输入为 0

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

图片

数据库

https://img2.mukewang.com/6505703f00015c2c05370227.jpg

数据库设计

https://img3.mukewang.com/6505704d0001df3906420184.jpg

错误1

https://img3.mukewang.com/6505705a0001839605450260.jpg

错误2

https://img2.mukewang.com/65057068000168f205680290.jpg

代码:


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();

    }

  }

慕沐林林
浏览 49回答 1
1回答

慕慕森

您无法使用查询从前端将任何列更新为自动增量。您有 3 个选择:选项 1:-使用 SQL mangement studio 更新它。选项 2:- 删除您的专栏并创建新专栏。如果当前表中没有记录。但这会改变您的列的序号位置。-- ID is the name of the  [to be] identity columnALTER TABLE [yourTable] DROP COLUMN ID ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)选项 3:您可以删除当前的表并再次创建它,并将列设置为IDENTITYCREATE 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]
打开App,查看更多内容
随时随地看视频慕课网APP