복붙노트

[SQL] 엔티티 프레임 워크 5 코드 처음에 기본 키를 처리하는 방법

SQL

엔티티 프레임 워크 5 코드 처음에 기본 키를 처리하는 방법

데이터베이스가 기본 키를 설정하면 내 EF5 코드 - 첫번째 모델에서 새로운 기록의 생성은 잘 작동합니다. 나는 차 키에 대한 GUID를 사용하고 있습니다 및 DatabaseGeneratedOption.Identity가 설정되어있는 경우, SQL Server는 항상 고유 식별자를 생성합니다.

그러나 이것은 내가 처음에 데이터베이스를 시드 노력하고 문제가 발생합니다. 내 종자 방법에 GUID를 설정하면 SQL Server는 우선합니다. 내가 GUID를 설정하지 않은 경우, 나는 새로운 기록을 매번 얻을. 미리 설정 GUID를 사용하여 데이터베이스를 씨앗 내 정상 작동 DatabaseGeneratedOption.Identity 세트를 유지하는 권장 솔루션은 무엇인가?

예 클래스 모델 :

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
public RecordName { get; set; }
public DateTime? Created { get; set; }
public DateTime? Updated { get; set; }

예 종자 방법 :

var record = new Record()
            {
                Id = new Guid("3B80725E-9550-4933-807F-C2FAA0942225"),
                RecordName = "New Record",
                Created = DateTime.UtcNow,
                Updated = DateTime.UtcNow,
             };
context.Record.AddOrUpdate(record);
context.SaveChanges();

해결법

  1. ==============================

    1.AddOrUpdate 당신이 키를 지정할 수 있습니다 과부하가 있습니다

    AddOrUpdate 당신이 키를 지정할 수 있습니다 과부하가 있습니다

    MSDN에서

    그래서 당신은 자연의 키와 방법을 제공해야합니다 :

    context.Record.AddOrUpdate(c => c.RecordName, new Record()
                {
                    RecordName = "New Record",
                    Created = DateTime.UtcNow,
                    Updated = DateTime.UtcNow,
                 })
    
  2. from https://stackoverflow.com/questions/17712416/how-to-handle-primary-key-in-entity-framework-5-code-first by cc-by-sa and MIT license