EFcore를 사용하여 MariaDB에서 자동 증분 int 열 생성
문제:
0부터 시작하는 자동 증가 정수 기본 키를 가진 코드를 먼저 사용하여 .netcore 2.2에 efcore가 있는 테이블을 만들려고 합니다.제가 찾은 모든 솔루션은 마이그레이션을 추가할 때 오류가 발생하거나 자동 증가가 작동하지만 처음부터 시작합니다.MinValue.
다음 솔루션은 모두 별도로 시도해 보았지만, 조합하지는 않았습니다.
해결책 1:
아무것도 하지 마.그냥 efcore가 기본적인 일을 하도록 내버려 두세요.
-> 열은 자동으로 증가하지만 int에서 시작합니다.최소값
해결책 2:
주석 설정"[DatabaseGenerated(DatabaseGeneratedOption.Identity)]"
프라이머리 키로
-> 열은 자동으로 증가하지만 int에서 시작합니다.MinValue 솔루션 3:
modelBuilder.Entity<User>()
.Property(u => u.Id)
.ValueGeneratedOnAdd();
-> 열은 자동으로 증가하지만 int에서 시작합니다.최소값
해결책 4:
modelBuilder.HasSequence<int>("User_seq")
.StartsAt(0)
.IncrementsBy(1);
modelBuilder.Entity<User>()
.Property(u => u.Id)
.HasDefaultValueSql("NEXT VALUE FOR User_seq");
-> 마이그레이션 추가가 실패하고 다음 오류가 발생합니다.
"You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SEQUENCE User_seq START WITH 0 INCREMENT BY 1' at line 1"
해결책 5:
ID의 데이터 유형을 utin으로 변경합니다.
-> 열은 자동으로 증가하지만 int에서 시작합니다.최대값
내 사용자 엔티티:
public class User
{
public int Id { get; set; }
public string FirstName{ get; set; }
public string LastName { get; set; }
}
사용 중인 공급자:포멜로.엔티티 프레임워크 코어.MySql
제 질문을 명확히 하겠습니다.efcore 코드를 먼저 사용하여 MariaDB에서 0에서 1씩 증가하는 자동 증가 정수 기본 키 열을 만드는 방법은 무엇입니까?
안 돼요.
MariaDB(MySQL)는 0을 새로운 생성을 위한 의미로 취급합니다.AUTO_INCREMENT
가치.
의 속성을 가정하지 마십시오.AUTO_INCREMENT
그것이 제공하지 않는.각각의 새로운 값이 기존의 값과 다를 것이라고만 말합니다.
아마int.MinValue
어떤 큰 음의 값(-2^31)입니다.
언급URL : https://stackoverflow.com/questions/56983288/generate-auto-increment-int-column-in-mariadb-with-efcore
'programing' 카테고리의 다른 글
jQuery 문자열에서 문자열 제거 (0) | 2023.10.03 |
---|---|
PL/SQL의 시프트 연산자 (0) | 2023.10.03 |
Python에서 각 하위 목록의 첫 번째 항목 추출 (0) | 2023.10.03 |
fancy box2 / fancy box는 페이지가 상단으로 점프하게 합니다. (0) | 2023.10.03 |
인식할 수 없는 특성 이름 MODULE(class com.sun.tools.javac.util)입니다.SharedNameTable$NameImppl) (0) | 2023.09.28 |