2012-04-25 3 views
3

EF Database First를 사용하고 있습니다. db에는 하나의 테이블에서 다른 테이블로 fk가 많이 있습니다 (동일). 모델을 생성 할 때 EF는 다른 끝 테이블 이름을 역할 이름으로 사용합니다. 이것은 문제입니다. 나는 문제를 설명하기 위해 아래에 작은 예제를 만들었다.EF 데이터베이스의 외래 키가있는 첫 번째 역할 이름은 무엇입니까?

생성 된 코드에서 테이블 이름 대신 fk-name을 사용하고 싶습니다. VS 지금 생성되는 모델은 다음과 같이 작동합니다 : 지금

aTrip.coming_from 
aTrip.arrives_to 
aTrip.next_dest 

을하고 싶은 경우

aTrip.Location 
aTrip.Location1 
aTrip.Location2 

, 내가 VS.에서 역할 이름을 변경할 수 있습니다 문제는 내가 다시 가져올 경우 모든 변경 사항이 손실된다는 것입니다. 또한 db에는 많은 fk가 포함되어 있으므로 지루한 이름 바꾸기가 많이 있습니다.

내가 원하는 것은 VS가 모델을 생성하는 방법을 변경하고 훨씬 더 정확한 fk의 col 이름을 사용하는 것입니다. 그게 끝날 수 있습니까?

+----------------+     +-------------+ 
| Trip  |     |Location  | 
+----------------+     |    | 
|    |     +-------------+ 
|    |     | Name  | 
|    |*     1|    | 
| coming_from ---------------------    | 
|    |     |    | 
|    |     |    | 
|    |*     1|    | 
| arrives_to ---------------------    | 
|    |     |    | 
|    |     |    | 
|    |*     1|    | 
| next_dest ---------------------    | 
|    |     |    | 
+----------------+     +-------------+ 
+0

코드 우선,이 문제를 다소 제어 할 수 있습니다. – mxmissile

답변

0

나는이 질문이 오래되었다는 것을 알고 있지만, 나는 그것을 가로 질러서 내 생각을 줄 것이라고 생각했다.

이제 모델을 데이터베이스로 가져올 때 외래 키의 기본 명명을 변경하는 것과 관련된 특정 질문에 대한 답변을 얻는 방법을 모르겠습니다. 방법이 있을지 모르지만 나는 그것을 모른다! 아무도하지 않는다면, 그걸 듣고 싶습니다.

그러나이 상황에서 내가 수행 할 작업은 데이터베이스에서 변경이 어떻게 이루어지고 있는지입니다. 이 설정은 사용자의 설정에 맞지 않을 수 있지만이 응용 프로그램에서만 데이터베이스를 사용하려는 경우 먼저 데이터베이스에서 모델 우선으로 이동할 수 있습니다.

데이터베이스에서 초기 가져 오기를 수행 한 후 모델을 생성하면 해당 모델을 원본 원본으로 만들고 모든 변경을 수행 한 다음 이에 따라 데이터베이스를 업데이트합니다. 즉, 원하는 방식대로 관계의 이름을 바꿀 수 있으며 데이터베이스가 변경 될 때마다 해당 작업을 반복하지 않아도된다는 의미입니다.

귀하의 상황이 이보다 더 복잡한 경우 완전히 적용되지 않을 수 있음을 완전히 이해하지만 일부 경우에는 해당 옵션을 사용할 수 있습니다.

당연히, 당신은 항상 한 단계 더 나아가서 모델 코드 우선을 정의 할 수 있습니다. 제가 개인적으로 선호하는 모델 코드는 제 의견입니다!

관련 문제