EF7 - HasOne 관계에 대한 사용자 정의 열 이름

entity-framework entity-framework-core

문제

EF7에서 HasOne 관계로 사용자 정의 열 이름을 어떻게 지정합니까?

다음 샘플 클래스를 고려하십시오.

public class House
{
    public int Id { get; set; }
    public int BedroomCount { get; set; }
    public Address Address { get; set; }
}

public class Address
{
    public int Id { get; set; }
    public string StreetName { get; set; }
    public string StreetNumber { get; set; }
}

그리고이 유창한 구성 :

public class House
{
    public int Id { get; set; }
    public int BedroomCount { get; set; }
    public Address Address { get; set; }
}

public class Address
{
    public int Id { get; set; }
    public string StreetName { get; set; }
    public string StreetNumber { get; set; }
}

이 DB 구성으로 연결됩니다.

public class House
{
    public int Id { get; set; }
    public int BedroomCount { get; set; }
    public Address Address { get; set; }
}

public class Address
{
    public int Id { get; set; }
    public string StreetName { get; set; }
    public string StreetNumber { get; set; }
}

하우스 테이블에서 '주소 아이디'이외의 열 이름을 어떻게 지정합니까? 내비게이션 속성이없는 것처럼 HasColumnName과 비슷한 메서드를 찾을 수 없습니다.

Entity Framework 7 RC1-Final을 사용하고 있습니다.

인기 답변

Data Annotations 을 사용하여 관계의 외래 키를 구성 할 수 있습니다.

public int AddressID { get; set; }

[ForeignKey("AddressID")]
public Address Address { get; set; }

이것은 당신의 관계에서 외래 키로 사용될 속성을 필요로합니다. 또한 그림자 외래 키 이외의 관계에 대해 명시 적 외래 키가있는 것이 좋습니다. 이렇게하면 House 엔티티를 저장하기 위해 전체 네비게이션 속성 Address 를 설정할 필요가 없기 때문에 삽입 / 업데이트 할 때 많은 문제가 발생하지 않게됩니다. 여기서 문제를 참조 하십시오.

테스트되지는 않았지만 아마도 이것이 작동 할 수 있습니다 (지금 EF7을 설치하는 방법을 찾을 수 없습니다).

public int AddressID { get; set; }

[ForeignKey("AddressID")]
public Address Address { get; set; }

여기에서 더 많은 예제를 확인할 수 있습니다 : 외래 키 관계 EF7




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.