繁体   English   中英

当已经实现了自动增量时,如果将identity_insert设置为OFF,则无法为标识列插入显式值

[英]Cannot insert explicit value for identity column when identity_insert is set to OFF when auto-increment is already implemented

我已经实现了数据库的自动增量,identity_insert设置为OFF。

但是,当我尝试将数据插入其他列时,出现“当IDENTITY_INSERT设置为OFF时,无法在表'书签'中为身份列插入显式值”。 错误。 下面的代码是表定义:

CREATE TABLE [dbo].[Bookmarks] (
[Id]        INT           IDENTITY (1, 1) NOT NULL,
[carparkId] INT           NULL,
[date]      DATETIME      NULL,
[username]  NVARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
FOREIGN KEY ([carparkId]) REFERENCES [dbo].[Carparks] ([id])

);

下面的代码显示了数据的插入,并且错误发生在db.SaveChanges()上。

    public void Insert(Bookmark obj)
    {
        data.Add(obj);
        db.SaveChanges();
    }

这是我要传递的数据:

 public ActionResult Create([Bind(Include = "carparkId,date,username")] Bookmark bookmark)
    {
        if (ModelState.IsValid)
        {

            bookmarkGateway.Insert(bookmark);
            return RedirectToAction("Index");

        }

任何想法如何解决此错误而无需打开identity_insert吗? 非常感谢您的帮助。

从您发布的代码看来,EF映射中的错误。

class BookmarkMap: EntityTypeConfiguration<Bookmark>
{
    public BookmarkMap()
    {
        Property(x => x.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM