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

EntityFramework Core导航属性未找到异常排查与解决

问题原因与解决方案

异常原因

在GoodTripDbContextModelSnapshot的TourCountry实体配置代码中存在拼写错误:

b.Navigation("Tours");

而TourCountry实体类中定义的关联导航属性是单数形式的Tour,并非复数的Tours。Entity Framework Core无法找到名为Tours的导航属性,因此抛出异常。

解决步骤

  1. 打开GoodTripDbContextModelSnapshot.cs文件,定位到TourCountry的配置段:
    modelBuilder.Entity("GoodTrip.DataBase.Entities.TourCountry", b =>
        {
            b.HasOne("GoodTrip.DataBase.Entities.Country", "Country")
                .WithMany("TourCountries")
                .HasForeignKey("CountryId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
    
            b.HasOne("GoodTrip.DataBase.Entities.Tour", "Tour")
                .WithMany("TourCountries")
                .HasForeignKey("TourId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
    
            b.Navigation("Country");
            b.Navigation("Tours"); // 此处为错误代码
        });
    
  2. 将错误的b.Navigation("Tours");修改为与实体类匹配的单数形式:
    b.Navigation("Country");
    b.Navigation("Tour"); // 修正为正确的导航属性名称
    
  3. 重新执行迁移命令:
    Add-Migration [自定义迁移名称]
    Update-Database
    

验证

修正后,EF Core可正确识别TourCountry中的Tour导航属性,数据库迁移操作即可正常完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:03:09