我正在使用现有的数据库,我很不幸无法更改,并且似乎无法创建关系。我对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