我有以下 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'列,这是我希望看到的。