簡體   English   中英

實體框架錯誤:無法為表中的標識列插入顯式值

[英]Entity Framework error: Cannot insert explicit value for identity column in table

我在 EF 上收到此錯誤。

當 IDENTITY_INSERT 設置為 OFF 時,無法在表“GroupMembers_New”中插入標識列的顯式值。

Db 上的列是標識增量,在 EF 設計文件中, StoreGeneratedPattern也是identity 似乎EF每次嘗試保存時都嘗試插入0。

一些建議說 ID 保留在表上或刪除表並重新運行腳本。

有任何想法嗎?

這是一些代碼:

GroupMember groupMember = new GroupMember();
            groupMember.GroupId = group.Id;
            groupMember.UserId = (new UserId(group.Owner));
            //groupMember.Id = _groupContext.GroupMembers.Count();
            group.GroupMembers.Add(groupMember);

            _groupContext.SaveChanges();

數據庫

EF 設計器

我在EF上收到此錯誤。

當IDENTITY_INSERT設置為OFF時,無法為表'GroupMembers_New'中的標識列插入顯式值。

Db上的列是標識增量,而EF設計文件上的StoreGeneratedPattern也是identity 似乎EF每次嘗試保存時都試圖插入0。

一些建議說ID是保留在表上或刪除表並重新運行腳本。

有任何想法嗎?

這是一些代碼:

GroupMember groupMember = new GroupMember();
            groupMember.GroupId = group.Id;
            groupMember.UserId = (new UserId(group.Owner));
            //groupMember.Id = _groupContext.GroupMembers.Count();
            group.GroupMembers.Add(groupMember);

            _groupContext.SaveChanges();

數據庫

EF設計師

我在EF上收到此錯誤。

當IDENTITY_INSERT設置為OFF時,無法為表'GroupMembers_New'中的標識列插入顯式值。

Db上的列是標識增量,而EF設計文件上的StoreGeneratedPattern也是identity 似乎EF每次嘗試保存時都試圖插入0。

一些建議說ID是保留在表上或刪除表並重新運行腳本。

有任何想法嗎?

這是一些代碼:

GroupMember groupMember = new GroupMember();
            groupMember.GroupId = group.Id;
            groupMember.UserId = (new UserId(group.Owner));
            //groupMember.Id = _groupContext.GroupMembers.Count();
            group.GroupMembers.Add(groupMember);

            _groupContext.SaveChanges();

數據庫

EF設計師

我在EF上收到此錯誤。

當IDENTITY_INSERT設置為OFF時,無法為表'GroupMembers_New'中的標識列插入顯式值。

Db上的列是標識增量,而EF設計文件上的StoreGeneratedPattern也是identity 似乎EF每次嘗試保存時都試圖插入0。

一些建議說ID是保留在表上或刪除表並重新運行腳本。

有任何想法嗎?

這是一些代碼:

GroupMember groupMember = new GroupMember();
            groupMember.GroupId = group.Id;
            groupMember.UserId = (new UserId(group.Owner));
            //groupMember.Id = _groupContext.GroupMembers.Count();
            group.GroupMembers.Add(groupMember);

            _groupContext.SaveChanges();

數據庫

EF設計師

我在EF上收到此錯誤。

當IDENTITY_INSERT設置為OFF時,無法為表'GroupMembers_New'中的標識列插入顯式值。

Db上的列是標識增量,而EF設計文件上的StoreGeneratedPattern也是identity 似乎EF每次嘗試保存時都試圖插入0。

一些建議說ID是保留在表上或刪除表並重新運行腳本。

有任何想法嗎?

這是一些代碼:

GroupMember groupMember = new GroupMember();
            groupMember.GroupId = group.Id;
            groupMember.UserId = (new UserId(group.Owner));
            //groupMember.Id = _groupContext.GroupMembers.Count();
            group.GroupMembers.Add(groupMember);

            _groupContext.SaveChanges();

數據庫

EF設計師

我在EF上收到此錯誤。

當IDENTITY_INSERT設置為OFF時,無法為表'GroupMembers_New'中的標識列插入顯式值。

Db上的列是標識增量,而EF設計文件上的StoreGeneratedPattern也是identity 似乎EF每次嘗試保存時都試圖插入0。

一些建議說ID是保留在表上或刪除表並重新運行腳本。

有任何想法嗎?

這是一些代碼:

GroupMember groupMember = new GroupMember();
            groupMember.GroupId = group.Id;
            groupMember.UserId = (new UserId(group.Owner));
            //groupMember.Id = _groupContext.GroupMembers.Count();
            group.GroupMembers.Add(groupMember);

            _groupContext.SaveChanges();

數據庫

EF設計師

我在EF上收到此錯誤。

當IDENTITY_INSERT設置為OFF時,無法為表'GroupMembers_New'中的標識列插入顯式值。

Db上的列是標識增量,而EF設計文件上的StoreGeneratedPattern也是identity 似乎EF每次嘗試保存時都試圖插入0。

一些建議說ID是保留在表上或刪除表並重新運行腳本。

有任何想法嗎?

這是一些代碼:

GroupMember groupMember = new GroupMember();
            groupMember.GroupId = group.Id;
            groupMember.UserId = (new UserId(group.Owner));
            //groupMember.Id = _groupContext.GroupMembers.Count();
            group.GroupMembers.Add(groupMember);

            _groupContext.SaveChanges();

數據庫

EF設計師

我在EF上收到此錯誤。

當IDENTITY_INSERT設置為OFF時,無法為表'GroupMembers_New'中的標識列插入顯式值。

Db上的列是標識增量,而EF設計文件上的StoreGeneratedPattern也是identity 似乎EF每次嘗試保存時都試圖插入0。

一些建議說ID是保留在表上或刪除表並重新運行腳本。

有任何想法嗎?

這是一些代碼:

GroupMember groupMember = new GroupMember();
            groupMember.GroupId = group.Id;
            groupMember.UserId = (new UserId(group.Owner));
            //groupMember.Id = _groupContext.GroupMembers.Count();
            group.GroupMembers.Add(groupMember);

            _groupContext.SaveChanges();

數據庫

EF設計師

我在EF上收到此錯誤。

當IDENTITY_INSERT設置為OFF時,無法為表'GroupMembers_New'中的標識列插入顯式值。

Db上的列是標識增量,而EF設計文件上的StoreGeneratedPattern也是identity 似乎EF每次嘗試保存時都試圖插入0。

一些建議說ID是保留在表上或刪除表並重新運行腳本。

有任何想法嗎?

這是一些代碼:

GroupMember groupMember = new GroupMember();
            groupMember.GroupId = group.Id;
            groupMember.UserId = (new UserId(group.Owner));
            //groupMember.Id = _groupContext.GroupMembers.Count();
            group.GroupMembers.Add(groupMember);

            _groupContext.SaveChanges();

數據庫

EF設計師

我在EF上收到此錯誤。

當IDENTITY_INSERT設置為OFF時,無法為表'GroupMembers_New'中的標識列插入顯式值。

Db上的列是標識增量,而EF設計文件上的StoreGeneratedPattern也是identity 似乎EF每次嘗試保存時都試圖插入0。

一些建議說ID是保留在表上或刪除表並重新運行腳本。

有任何想法嗎?

這是一些代碼:

GroupMember groupMember = new GroupMember();
            groupMember.GroupId = group.Id;
            groupMember.UserId = (new UserId(group.Owner));
            //groupMember.Id = _groupContext.GroupMembers.Count();
            group.GroupMembers.Add(groupMember);

            _groupContext.SaveChanges();

數據庫

EF設計師

我在EF上收到此錯誤。

當IDENTITY_INSERT設置為OFF時,無法為表'GroupMembers_New'中的標識列插入顯式值。

Db上的列是標識增量,而EF設計文件上的StoreGeneratedPattern也是identity 似乎EF每次嘗試保存時都試圖插入0。

一些建議說ID是保留在表上或刪除表並重新運行腳本。

有任何想法嗎?

這是一些代碼:

GroupMember groupMember = new GroupMember();
            groupMember.GroupId = group.Id;
            groupMember.UserId = (new UserId(group.Owner));
            //groupMember.Id = _groupContext.GroupMembers.Count();
            group.GroupMembers.Add(groupMember);

            _groupContext.SaveChanges();

數據庫

EF設計師

我首先使用 DB 並且該表具有標識列。 我沒有使用 db-scaffolding 來生成它,我從另一個實體復制了它,並且錯誤地使用了這個屬性。

所以

嘗試檢查 DBContext 類。 我收到了這個錯誤,問題出在這個屬性“.ValueGeneratedNever()”上,我剛剛刪除了它,它工作正常,

modelBuilder.Entity<TableName>(entity =>
        {
            entity.Property(e => e.Id)
                //.ValueGeneratedNever()
                .HasColumnName("ID");
        });

注意:版主刪除了這個答案作為重復,並留下了我的另一個答案,一個只有 sql-server 標簽的問題(這是我從谷歌得到的第一個問題)。 由於這個問題有實體框架標簽,所以在這里再次發布答案。

這適用於 EntityFramework Core 3.1.22。 使用錯誤的屬性來指定外鍵會導致 Entity Framework 將主鍵降級為……其他東西。 然后,實體框架將始終嘗試插入顯式值,這會引發數據庫異常,因為它無法插入被告知是主鍵且不應插入的值。

Microsoft.EntityFrameworkCore.DbUpdateException: 'An error occurred while updating the entries. See the inner exception for details.'
Inner Exception:
SqlException: Cannot insert explicit value for identity column in table 'FOO' when IDENTITY_INSERT is set to OFF.

如果您不想使用 EF 核心的自動生成主鍵值功能,可以將其關閉。 您可以將數據添加到主鍵它應該可以解決錯誤 - Set Identity Insert off

[Key]

[DatabaseGenerated(DatabaseGeneratedOption.None)]

public int StudentId { get; set; }

將數據庫生成選項設置為無對我有幫助。 您可以在此處找到更多相關信息 - https://docs.microsoft.com/en-us/ef/core/modeling/generated-properties?tabs=data-annotations

添加此行以允許 Id 列接收 1、2、3 和 4 值,而不是自動編號。

Sql("SET IDENTITY_INSERT MembershipTypes ON")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM