Если бы вы разработали этот объект ориентированным образом, вам, вероятно, пришлось бы создать класс PictureDescription
и класс PicturePrice
, которые имели бы другие свойства.
Каждое описание PictureD иметь ноль или один объект PicturePrice: прямое агрегирование
Если вы хотите ноль или один в реляционной базе данных, то это часто делается с использованием двух таблиц с внешним ключом из одной таблицы, указывающимв другую таблицу.
См. Entity Framework ноль или один-к-одному
class PictureDescription
{
public int Id {get; set;}
public string Title {get; set;}
...
// every PictureDescription has zero or one PicturePrice
public virtual PicturePrice PicturePrice {get; set;}
}
class PicturePrice
{
public int Id {get; set;}
public decimal Price {get; set;}
...
// every PicturePrice belongs to exactly one Picture, using foreign key
public int PictureDescriptionId {get; set;}
public virtual PictureDescription PictureDescription {get; set;}
}
Этого будет достаточно, чтобы Entity Framework обнаружил ваши столбцы иотношения между таблицами.Если вы хотите использовать свободный API, в DbContext.OnModelCreating:
// every PictureDescription has zero or one PicturePrice:
modelBuilder.Entity<PictureDescription>()
.HasOptional(description => description.PicturePrice)
.WithRequired(price => price.PictureDescription)
.HasForeignKey(price => price.PictureDescriptionId);