我正在使用現有的數據庫,我很不幸無法更改,並且似乎無法創建關係。我對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
字段都與地址類中的Id
相關,但不幸的是沒有在數據庫中設置爲外鍵。
我相信我試圖實現的關係是多方面的。即一個訂單有一個發貨地址(地址),但地址可以是許多訂單的發貨地址。
我試過以下的多種變化:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>().HasOptional(o => o.ShippingAddress)
.WithMany()
.HasForeignKey(o => o.ShippingAddressId);
}
但每次我嘗試訪問Order.ShippingAddress.FirstName的時候,我得到一個空引用異常。
是我想要實現的可能嗎?
你是先使用代碼嗎? – dakait 2013-03-08 10:02:33