残念ながら変更できない既存のデータベースを使用しており、関係の作成に問題があるようです。私は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
ますが、残念ながらデータベースに外部キーとして設定されていません。
私が達成しようとしている関係は多対一だと思います。つまり、注文には1つの配送先住所(住所)がありますが、住所は多くの注文の配送先住所にすることができます。
私は次の複数のバリエーションを試しました:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>().HasOptional(o => o.ShippingAddress)
.WithMany()
.HasForeignKey(o => o.ShippingAddressId);
}
しかし、Order.ShippingAddress.FirstNameにアクセスしようとするたびに、null参照例外が発生します。
私が達成しようとしていることは可能ですか?