불행히도 변경할 수없는 기존 데이터베이스를 사용하고 관계를 만드는 데 문제가있는 것으로 보입니다. 필자는 EF에 비교적 익숙하지 않은데, 일부 검색 결과 사용자가 비슷한 것을 얻으려는 시도를 한 적이 있지만 주어진 상황에서이 조언이 제공되지 않는 것 같습니다.EF를 사용하여 기존 데이터베이스의 관계 매핑
나는 다음과 같은 클래스가 있습니다
public partial class Order
{
public int Id { get; set; }
public int BillingAddressId { get; set; }
public int ShippingAddressId { get; set; }
//more values
public virtual Address ShippingAddress { get; set; }
public virtual Address BillingAddress { get; set; }
}
public partial class Address
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
//more values
}
나는 순서 내에서 탐색 속성을 통해 배송/결제 주소를 액세스 할 수 있도록하고 싶습니다
. ShippingAddressId
/BillingAddressId
필드는 Address 클래스에서 Id
과 관련이 있지만 데이터베이스에 외래 키로 설정되지는 않습니다.
저는 달성하려는 관계가 많은 것이라고 믿습니다. 즉, 주문에는 배송 주소 (주소)가 하나 있지만 주소는 여러 주문의 배송 주소가 될 수 있습니다.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>().HasOptional(o => o.ShippingAddress)
.WithMany()
.HasForeignKey(o => o.ShippingAddressId);
}
는하지만 Order.ShippingAddress.FirstName에 액세스하려고 할 때마다, 나는 null 참조 예외를 얻을 :
나는 다음과 같은 여러 변화를 시도했습니다.
가능한 것을 얻으 려하고 있습니까?
먼저 FK ID를 Nullable로 만들 필요가 있습니까? – dakait