2013-05-22 3 views
2

User이라는 엔티티가 있고 AvailableConsumption이라는 엔티티가 있습니다. 그들 사이 1 AvailableConsumption에 0..1의 연관이있다EF 5 개의 외래 키 이름

User의 FK 내가 FK에 넣고 싶은 User 테이블의 PK와 이름의 이름이다 (UserId라고 했어야한다).

모델을 변경할 때마다 UserId에서 User_UserId으로 이름이 변경됩니다 (FK는 모델에서 속성으로 표시되지 않음).

모델을 통해서만 이러한 동작을 피할 수 있습니까?

추신 : 저는 C# 'Entity Framework 5를 모델 첫 번째 접근 방식으로 사용하고 있습니다.

+0

:

enter image description here

열 이름은 후 특히 유창한 매핑을 설정 ? '모델 첫 번째 '? – haim770

+0

추가 세부 정보가 추가되었습니다. – Cesar

+0

모델 첫 번째 접근 방식으로는 원하는 것을 할 수 없습니다. 유일한 코드 첫 번째 접근 방식은이를 제어 할 수있는 가능성을 제공합니다. –

답변

1

Fluent API로 모델 속성을 매핑 해 보았습니까?

Configuring/Mapping Properties and Types with the Fluent API

Configuring Relationships with the Fluent API

나는 같은 문제가 있었다. 내 Donation 엔터티는 PaymentTransaction이라는 다른 엔터티에 대한 탐색 속성을가집니다. 외래 키로 설정해야합니다.

public class DonationMap : EntityTypeConfiguration<Donation>{ 
    public DonationMap() { 
     // Primary Key 
     HasKey(t => t.Id); 

     // Properties 
     Property(t => t.Id).IsRequired(); 
     Property(t => t.FirstName).HasMaxLength(200).IsRequired(); 
     Property(t => t.LastName).HasMaxLength(200).IsRequired(); 
     Property(t => t.DonationAmount).HasColumnType("Money").IsRequired(); 

     // Column Mappings 

     // PaymentTransaction is a navigation property 
     //HasRequired(m => m.PaymentTransaction); // gives me column name "PaymentTransaction_PaymentTransactionId" 
     HasRequired(m => m.PaymentTransaction).WithMany().Map(m => m.MapKey("PaymentTransactionId")); 

     // Table Mapping 
     ToTable("Donation"); 
    } 
} 

열 이름 전에 특히 유창한 매핑을 설정 : 당신은`CodeFirst`를 사용하고

enter image description here

+0

특히, 이것을 위해 하나의 API를 추가하는 것이 매우 간단하기 때문에 (아직 진행중인 프로젝트이기 때문에) 그렇지 않았습니다. 그러나 어쨌든 당신을 감사하십시오. – Cesar

+0

@Cesar 코드/모델의 첫 번째 접근 방식을 사용하여'User'가'User_UserId'로 이름을 변경하는 것을 멈추고 싶다면 Fluent API 나 테이블 마이그레이션을 사용하는 것 외에는 다른 방법을 찾지 못합니다. 나는 동일한 문제가 있었고 그것은 나를 위해 일했다. 위의 업데이트 된 대답을 보라. – GFoley83

+0

아주 완벽한 예제를 가져 주셔서 감사합니다. 내일 확인하겠습니다. – Cesar