Entity Framework Fluent API Конфигурация отношений "один ноль или один"
У меня есть следующие 2 класса. Элемент может существовать без необходимости назначения ему ExportSiteLog, но экземпляр ExportSiteLog должен относиться к одному экземпляру item:
public class Item
{
public int Id { get; set; }
public virtual ExportSiteLog Log { get; set; }
}
public class ExportSiteLog
{
public int Id { get; set; }
public virtual Item Item { get; set; }
}
Я использую Fluent API для конфигурации своей сущностной модели и пока не смог определить правильную конфигурацию для этих двух объектов. Я использую отдельный класс для каждой EntityTypeConfiguration, например:
public class ItemConfig : EntityTypeConfiguration<Item>
{
public ItemConfig()
{
HasOptional(item => item.Log)
.WithRequired(export => export.Item);
ToTable("Items");
}
}
... и попробовал что-то вроде этого в конфигурации ExportSiteLog:
HasRequired(export => export.Item)
.WithOptional(item => item.Log);
Первоначально я получал ошибку EF при запуске update-database (code-first), говоря:
"Невозможно определить основной конец ассоциации между типами" xxx.ExportSiteLog "и" xxx.Item ". Основной конец этой ассоциации должен быть явно настроен с использованием либо API-интерфейса, обеспечивающего свободное взаимодействие, либо аннотаций данных".
При реализации вышеупомянутых EntityTypeConfigurations эта ошибка, казалось, исчезла, когда я запустил "update-database", но мои 2 таблицы в БД, кажется, не добавили столбец "Id" FK в обеих таблицах, которые я ожидаю увидеть.