Entity Framework 6 Code First를 통해 newid()를 사용하여 SQL 데이터베이스에서 테이블의 기본 키 기본값을 설정하려고합니다. 내가이이 코드를 통해 수행도 How to set NewId() for GUID in entity frameworknewid() with Entity Framework 6 코드 우선
하지만처럼 유래에 대한 몇 가지 방법을 찾을 방법을 알고 : 나는 백업 /하지 객체를 통해 있었으나 결국 데이터베이스에 부푼로 데이터를 삽입 메커니즘을 복원해야합니다. 따라서 Entity Framework는 여기에 사용되지 않습니다. 즉, GUID가 null 인 행이 SQL 데이터베이스에 삽입되어 실패합니다.
이 주석
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public Nullable<Guid> Entity_OID { get; set; }
을 추가 할 수 있습니다 그리고이 성공적으로는보다 높은 새 GUID를 추가() NEWID (와 유사한 일을 기본 값으로 NEWSEQUENTIALID()를 추가합니다 최근 guids, 그래서 당신은 입력에서 순서가 있기 때문에 성능을 이길). 그러나 EF없이 이미 존재하는 데이터베이스이기 때문에 가능한 한 적은 변경을하고 싶습니다. 그래서 나는 NEWSEQUENTIALID()에 만족하지 않습니다. 나는 그것이 여전히 newid()라면 오히려 그것을 좋아할 것이다. 그러나 Entity Framework 6 Code First에서 newid()에 대한 Annotation/Mapping을 찾지 못했습니다. 그리고 설계 상 데이터베이스에 대한 모든 변경 사항은 코드를 통해 수행되어야합니다. 누구든지 코드를 통해 행에 newid() 기본값을 추가하는 방법을 알고 있습니까? 사전에
감사합니다!
자동 생성 키를 사용하지 않고 ctor의 키 값을 설정할 수 없습니까? GUID는 고유 한 것으로 보장되므로 데이터베이스 나 코드에 의해 생성되는지 여부는 중요하지 않으며 두 GUID에 대해 동일한 GUID가 생성되는 상황에 빠지지 않아야합니다 (다시 말하면 GUID는 globaly로 간주되기 때문입니다). 고유) – Pawel
예 저는이를 수행 할 수 있습니다. 이것은 Buisness Logic을 통해 작성된 엔티티에서 작동합니다. 그러나 엔티티가 생성되지 않은 스트림을 통해 cbak 파일에서 복원하면 데이터베이스가 생성해야합니다. –