[SQL] 엔티티 프레임 워크 오류 : 테이블의 ID 열에 대한 명시 적 값을 삽입 할 수 없습니다
SQL엔티티 프레임 워크 오류 : 테이블의 ID 열에 대한 명시 적 값을 삽입 할 수 없습니다
나는 EF에이 오류를 받고 있어요.
DB를에 열 신원 증가하고 EF 디자인 파일, StoreGeneratedPattern뿐만 아니라 정체성입니다. 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();
해결법
-
==============================
1.나는 전에이로 실행했다. 이 오류는 데이터베이스를 자동으로 할당하는 열을 명시 적으로 값을 할당하려고하는 것을 의미한다.
나는 전에이로 실행했다. 이 오류는 데이터베이스를 자동으로 할당하는 열을 명시 적으로 값을 할당하려고하는 것을 의미한다.
암시: 데이터베이스에서 만든 수있는 변경 사항을 반영하기 위해 edmx 파일을 업데이트합니다. 데이터베이스가 자동으로 값을 할당하면 해당 속성 아래 디자이너 파일에서 "IsDbGenerated = true"로 속성을 볼 수 있습니다. 거기가 아니라면, 당신은 수동으로 추가 할 수 있습니다.
-
==============================
2.이 시도:
이 시도:
using System.ComponentModel.DataAnnotations.Schema; [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public decimal Identity_Col { get; set; }
엔터티 프레임 워크 클래스 파일은 ID 열을 코드 줄을 추가합니다.
-
==============================
3.정체성 해당 부동산의 상단에이 attribs을 넣어 :
정체성 해당 부동산의 상단에이 attribs을 넣어 :
[Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int ID { get; set; }
-
==============================
4.구글의 첫 경기는, 그래서 여기 내 솔루션입니다 :
구글의 첫 경기는, 그래서 여기 내 솔루션입니다 :
EF 코드 첫째 : 때문에 자동 증가 PK 'ID'필드와 GUID 열이 같은 디자인 :
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid FileToken { get; set; }
중복 정체성이 있었다. 나는 그것을 할 수 변경 :
[DatabaseGenerated(DatabaseGeneratedOption.Computed)] [DefaultValue("newid()")] public Guid FileToken { get; set; }
그리고 문제가 멀리 갔다.
당신을 도움이되기를 바랍니다.
에릭
-
==============================
5.EF 6에서이 작업을 수행하는 모델의 필드 / 컬럼의 속성이 있습니다 : StoreGeneratedPattern.
EF 6에서이 작업을 수행하는 모델의 필드 / 컬럼의 속성이 있습니다 : StoreGeneratedPattern.
속성 드롭 다운 목록에서 "정체성"로 설정합니다.
(내가 EF 4. 위의 대답에 대해 알고하지 않습니다, IsDbGenerated를 사용하여, EF 4.이 될 것 같다)
요소에 속성에 기본 XML에서 그리고이 해당한다 :
<Property Name="MyTableId" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
당신이 디자이너를 사용할 수 있기 때문에 - 그러나 당신은 수동으로 XML을 처리 할 필요가 없습니다.
이 엉망이됩니다 방법은 명확하지 않다. 난 데이터베이스에서 내 모델을 새로 고침 후 문제가 있었다. 당신이 테이블에 PK를 설정하거나 이름을 변경하면 이미 모델을 생성 한 후 아마도 그것은, 혼동됩니다. (내가 먼저 테이블 / 데이터베이스 첫 번째 방법이 아닌 코드를 사용하고 있습니다.)
이 상황에서 엔티티 코드가 EF에 의해 생성되기 때문에 당신은 엔티티 코드는 C # 속성을 가하고의 위의 방법을 사용할 수 없습니다. EF는 필드가 정체성이다 ( "자체") 이해하기로한다.
-
==============================
6.나는 내 응용 프로그램에서이 문제를 가지고 있었다; 아이덴티티의 id 필드의 속성을 "StoreGeneratedPattern을"변화를 고정되었다.
나는 내 응용 프로그램에서이 문제를 가지고 있었다; 아이덴티티의 id 필드의 속성을 "StoreGeneratedPattern을"변화를 고정되었다.
그래서 모델로 이동; 테이블에 대한 조회; 기본 키 필드의 속성을 클릭합니다; 및 속성을 변경합니다.
-
==============================
7.내 AspNetCore 2.x를 프로그램에서 동일한 문제 및 오류 메시지가 발생했습니다. 내가 해결할 수있는 유일한 방법은 그것을 DbContext 클래스의 ModelBuilder.Entity 방법이 라인을 제거했다 :
내 AspNetCore 2.x를 프로그램에서 동일한 문제 및 오류 메시지가 발생했습니다. 내가 해결할 수있는 유일한 방법은 그것을 DbContext 클래스의 ModelBuilder.Entity 방법이 라인을 제거했다 :
// remove: entity.Property(e => e.Id).ValueGeneratedNever();
from https://stackoverflow.com/questions/11173562/entity-framework-error-cannot-insert-explicit-value-for-identity-column-in-tabl by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 연속 범위에 나 나 그룹을 (0) | 2020.04.08 |
---|---|
[SQL] C #을 사용 데이터베이스에 이미지를 저장하는 방법 [마감] (0) | 2020.04.08 |
[SQL] LINQ에서 SQL ISNULL의 등가? (0) | 2020.04.08 |
[SQL] 정규식 널 (null)을 허용 목록에서 n 번째 값을 선택합니다 (0) | 2020.04.08 |
[SQL] PostgreSQL의 날짜 범위를 중복 찾기 (0) | 2020.04.08 |