1

SQL에서 Linq 및 EF를 사용할 때 새로운 고유 공유 키를 만드는 올바른 방법은 무엇입니까?Linq/Entity Framework의 새 레코드에 대한 행 ID 유지 관리는 어떻게해야합니까?

레코드를 삽입 할 때 GUID를 사용할 수는 있지만 내 MVC 응용 프로그램의 URL에 나타나기 때문에 키에 7 자리 또는 문자가 포함되기를 원합니다. 이것이 옵션이 아니면 GUID로 알려주는 것이 좋습니다.

+0

"공유"키는 무엇을 의미합니까? – BrokenGlass

+0

공유 키가 다른 테이블에서 FK로 사용될 수도 있고 사용되지 않을 수도있는 키라는 것을 의미합니다. 아마도이 삽입물의 일부로, 아마도 다른 삽입물의 일부로 발생할 것입니다. – LamonteCristo

답변

0

기계 경계를 넘나들며 고유 한 키가 필요하지 않은 경우 bigint/idenity (기본값은 1)로 자동 증가합니다. EF로 새 엔티티를 추가 할 때 ID를 지정할 필요가 없으며 자동 할당됩니다. 일단 할당되면 FK로 사용할 수 있습니다.

내 생각에 GUIDs은 키가 여러 데이터베이스에서 고유하다는 것을 보장해야하는 경우에만 유용합니다. 즉, 키를 하나의 시스템 (A)에 작성하고 데이터를 다른 시스템 (B), 열쇠를 유지. 컴퓨터 B가 동일한 키를 가진 다른 데이터를 이미 삽입했기 때문에 bigint 키는 불가능합니다.

+0

Linq 또는 Entity Framework를 사용하여 새로운 PK/FK 관계에서 자동 증가 키를 사용하는 방법 (여기서 EF는 FK를 객체에 숨기고 추상화합니다)? – LamonteCristo

+0

DB/모델에서 FK 관계를 정의하면 네비게이션 속성이있는 엔티티에 반영됩니다 (엔티티 'B'는 엔티티 'A'와 FK 관계라고 가정 해 봅시다). 새로운 엔티티'B'를 추가하면 해당 네비게이션 속성을 설정합니다. 즉,'BA = A'를 설정하고 객체를 추가하고'context.SaveChanges() '를 수행하십시오. – BrokenGlass

+0

새 엔티티'B'를 추가하면 어떻게됩니까? 'A'에서 사용할 키의 autoIncrement 결과를 얻으시겠습니까? 당신은 EF가 저를 위해 마술처럼 돌보는 것이라고 말하고 있습니까? PK가 식별 열 (identity column)이라는 제약이 있습니까? SQL 테이블에서 지원 구성 (FK 관계 및 탐색 외에)을 수행해야합니까? 누가 신원 확인 키 SQL, EF, 내 코드를 작성하고 있습니까? – LamonteCristo