Бизнес-кейс
У нас есть рубашка, которую можно заказать в нескольких цветах: Yello; Белый; Оранжевый; Синий; Зеленый; Красный;
Однако по умолчанию для рубашки можно выбрать только один цвет.
Осуществление
Вот что у меня есть:
public class Shirt
{
public int Id { get; set; }
public string Sku { get; set; }
public string Description { get; set; }
public Color DefaultColor { get; set; }
public ICollection<Color> AvailableColors { get; set; }
}
public class Color
{
public int Id { get; set; }
public string ColorCode { get; set; }
public string Name { get; set; }
public string HexCode { get; set; }
public int ShirtId { get; set; }
public virtual Shirt Shirt { get; set; }
}
public class ShirtContext : DbContext
{
public ShirtContext() : base("name=DefaultConnection") { }
public DbSet<Shirt> Shirts { get; set; }
public DbSet<Color> Colors { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Shirt>()
.HasRequired(c => c.DefaultColor)
.WithRequiredDependent(c => c.Shirt);
modelBuilder.Entity<Color>()
.HasRequired(c => c.Shirt)
.WithMany(o => o.AvailableColors)
.WillCascadeOnDelete();
base.OnModelCreating(modelBuilder);
}
}
Выпуск
System.Data.Entity.Core.MetadataException: 'Schema specified is not valid. Errors: The relationship 'ShirtPortal.Data.Color_Shirt' was not loaded because the type 'ShirtPortal.Data.Color' is not available.'
Могу ли я получить помощь в настройке отношения внешнего ключа в моих организациях в соответствии с моим бизнес-кейсом?