You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF Core共享表的Owned Entity配置时态表报错求助

解决方案

因为共享同一张表的所有实体类型(包括通过OwnsOne配置的子实体)必须统一时态表配置——要么同时启用,要么都不启用。你可以通过子实体配置的元数据来标记它为时态表,具体修改代码如下:

builder.ToTable("ParentTable", t => t.IsTemporal());

builder
    .OwnsOne(t => t.ChildProp, childBuilder =>
    {
        childBuilder 
            .Property(t => t.Amount)
            .IsRequired()
            .HasPrecision(18, 2)
            .HasColumnName("Parent_Amount");

        childBuilder 
            .Property(t => t.Currency)
            .IsRequired()
            .HasEnumConversion()
            .HasColumnName("Parent_Currency");

        // 标记子实体为时态表,与父实体保持配置一致
        childBuilder.Metadata.IsTemporal = true;
    });

通过childBuilder.Metadata.IsTemporal = true将子实体的元数据设置为启用时态表,和父实体的配置统一后,就能解决EF Core抛出的错误。

内容的提问来源于stack exchange,提问作者Mark Lisoway

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:57:10