EFCore-一對一配置外鍵小記2


前后兩次遇到這樣的錯誤:

The property 'xx' on entity type 'xxxx' has a temporary value. Either set a permanent value explicitly or ensure that the database is configured to generate values for this property.

多數情況下是表配置關系會出現這樣的問題。我實在配置TagItem一對一關聯TagUseCount出現的問題:

public void Configure(EntityTypeBuilder<TagItem> builder)
        {
            builder.ToTable("Tags")
                .HasKey(x => x.Id);

            builder.Property(x => x.Id).HasColumnName("TagId");
            builder.Property(x => x.TagName);

            builder.HasOne(x => x.TagUseCount)
                .WithOne(x => x.Tag)
                .HasForeignKey<Tag>(x => x.Id);
        }

以及

public void Configure(EntityTypeBuilder<TagUseCount> builder)
        {
            builder.ToTable("TagUseCount");

            builder.Property(t => t.Id)
                .HasColumnName("TagId");
            builder.Property(t => t.UseCount);
        }

以上配置有兩點錯誤,都是調試后總結出來的:

  1. TagItem 關聯TagUseCount 需要指定的是關聯表的外鍵,也就是TagUseCountId,不能指定自己哦!
  2. TagUseCount千萬別偷懶或忘記寫 builder.HasKey(x => x.Id);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM