2013-12-18 2 views
0

저는 엔티티 프레임 워크에 익숙하지 않고 천천히 배우고 있습니다. 나는이 답변을 찾았으며 답을 찾지 못했습니다.Entity Framework : 데이터베이스의 ID 필드 이름이 중요합니까?

Products 
----------- 
ProdID (PK, identity field) 
ProdName 
ProdSKU 

는 신원 필드가 "ProdID는"라는하거나 "ID"를 말할 필요가 않습니다 OK인가 :의 내가 다음 표 정의가 있다고 가정 해 봅시다? 나는 내 팀의 다른 개발자가 "ID"또는 엔티티 프레임 워크가 작동하지 않아야한다는 말을 들었다. 그러나 그것은 나에게 의미가 없다. 어떤 조언을 환영합니다.

+0

ID가 기본값이며 SQL의 일반적인 규칙이기도합니다. – Maess

+0

"작동하지 않습니다"라는 메시지가 잘못되었습니다. 약간의 추가 설정 만 필요합니다. –

+0

@Maess : 'ID'에 대한 일반적인 협약에 관한 논란이 많은 성명서. 많은 사람들/책들은 그것을 반 패턴이라고 부릅니다. – a1ex07

답변

5

그들은 Id 또는 <NameOfEntity>Id이 (그래서 ProductsId 귀하의 경우이)가 될 것입니다 당신이 그것을 호출하면 (물론 첫 번째 코드)

EF의 명명 규칙을하고있는 PK로 "자동 감지".

규칙을 따르지 않으면 EF에게 PK임을 알려야합니다.

속성에 속성 ([Key]) 또는 유창한 API (modelBuilder.Entity<Products>().HasKey(t => t.ProdID);)가 있습니다.

다른 개발자 (저는 개발자입니다)를 신뢰하지 마십시오.

+1

코드를 먼저 작성한 경우에만 해당합니까? 먼저 데이터베이스를 작성하면 호출 된 내용과 상관없이 PK를 얻어야합니다. 맞습니까? –

+0

@simonatrcl. 어떤 경우에는 올바른 PK (예 :보기)를 찾기 위해 EF를 도와야하지만 그렇지 않습니다. –

+0

@simonatrcl : EDMX 모델이 테이블을 검사하여 기본 키 제약 조건을 찾아이를 사용하여 기본 키를 결정합니다. 원하는 이름을 지정할 수 있습니다. –

관련 문제