2

我有以下 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 错误,说:

“无法确定类型 'xxx.ExportSiteLog' 和 'xxx.Item' 之间关联的主体端。必须使用关系流式 API 或数据注释显式配置此关联的主体端。”

实现上述EntityTypeConfigurations,当我运行'update-database'时,这个错误似乎消失了,但我在数据库中的2个表似乎没有在两个表中添加一个FK'Id'列,这是我希望看到的。

4

0 回答 0