Я хочу ссылаться на OrderAddress
модель дважды в моей модели Order
; один раз как ShippingAddress
и один раз как BillingAdress
.
С другой стороны, я хочу, чтобы моя модель OrderAddress
имела список OrderAddresses
.
Модель OrderAddress
public enum AddressType
{
Billing,
Shipping,
Contact
}
public class OrderAddress : BaseModel
{
public AddressType AddressType { get; set; }
public bool IsPrimary { get; set; }
public string Address { get; set; }
public string CityStateZip { get; set; }
public string ContactName { get; set; }
public string PhoneNumber { get; set; }
public string FaxNumber { get; set; }
public string EmailAddress { get; set; }
public virtual ICollection<Order> Orders { get; set; }
public virtual ApplicationUser User { get; set; }
}
Модель заказа
public class Order : BaseModel
{
public DateTime OrderDate { get; set; }
public int BillingAddressId { get; set; }
public virtual OrderAddress BillingAddress { get; set; }
public int ShippingAddressId { get; set; }
public virtual OrderAddress ShippingAddress { get; set; }
public virtual ApplicationUser User { get; set; }
}
Свободный API
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Order>()
.HasRequired(m => m.ShippingAddress)
.WithMany(t => t.Orders)
.HasForeignKey(m => m.ShippingAddressId)
.WillCascadeOnDelete(false);
modelBuilder.Entity<Order>()
.HasRequired(m => m.BillingAddress)
.WithMany(t => t.Orders)
.HasForeignKey(m => m.BillingAddressId)
.WillCascadeOnDelete(false);
}
Когда я пытаюсь запустить Update-Database, я получаю следующую ошибку:
Указанная схема недействительна. Ошибки: отношение "MyApp.Domain.DAL.Order_ShippingAddress" не было загружено, потому что тип "MyApp.Domain.DAL.OrderAddress" недоступен.
Что я делаю неправильно?