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

EF 7迁移中使用分部类扩展OrderItem遇[InverseProperty]错误求助

EF 7迁移报错:[InverseProperty]属性无效问题解决

问题场景

我尝试通过在Main项目中创建分部类,给Domain项目的OrderItem类新增属性,但执行EF 7迁移时触发以下错误:

[InverseProperty] attribute on property 'OrderItem.Order' is not valid.
The property OrderItems is not a valid navigation on the related type Order. Ensure that the property exists and is a valid reference or collection navigation.

相关代码

Domain项目中的OrderItem类

namespace Domain.Orders;
[Table("Table_34")]
public partial class OrderItem : BaseEntity
{
    [Column("Field_09")]
    public ProductType ProductType { get; set; }
    [Column("Field_10", TypeName = "decimal(18, 0)")]
    public decimal Price { get; set; }
    [Column("Field_11")]
    public long ProductItemId { get; set; }
    [Column("Field_12", TypeName = "decimal(18, 0)")]
    public decimal Discount { get; set; }
    [Column("Field_13", TypeName = "decimal(18, 0)")]
    public decimal Tax { get; set; }
    [Column("Field_14")]
    [ForeignKey("Field_14")]
    public long OrderId { get; set; }
    [Column("Field_15")]
    public int Count { get; set; }
    [Column("Field_16", TypeName = "datetime")]
    public DateTime? StartDate { get; set; }
    [Column("Field_17")]
    public long? Time { get; set; }
    [InverseProperty("OrderItems")]
    public virtual Order Order { get; set; }
}

Main项目中的OrderItem分部类

namespace Domain.Orders;
public partial class OrderItem
{
    [InverseProperty("OrderItem")]
    public License License { get; set; }
    [InverseProperty("OrderItem")]
    public RequestLicense RequestLicense { get; set; }
}

问题原因与解决办法

  • 报错根源:OrderItem.Order上的[InverseProperty("OrderItems")]要求Order类必须存在名为OrderItems的有效导航属性,但当前Order类里没有这个属性,或者属性类型不符合要求。
  • 解决步骤:
    1. 打开Order类,添加对应的集合导航属性:
      public virtual ICollection<OrderItem> OrderItems { get; set; } = new List<OrderItem>();
      
    2. 确认Order类中的OrderItems是有效的集合导航(用virtual修饰,类型为ICollection<OrderItem>),确保和OrderItem.Order的反向配置匹配。
    3. 同时检查License和RequestLicense类,确认它们各自存在名为OrderItem的导航属性,否则分部类里的这两个[InverseProperty]也会引发类似错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 23:35:23