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
相关产品推荐
相关产品推荐

