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 в обеих таблицах, которые я ожидаю увидеть.

0 ответов

Другие вопросы по тегам