前后兩次遇到這樣的錯誤:
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);
}
以上配置有兩點錯誤,都是調試后總結出來的:
TagItem
關聯TagUseCount
需要指定的是關聯表的外鍵,也就是TagUseCount
的Id
,不能指定自己哦!TagUseCount
千萬別偷懶或忘記寫builder.HasKey(x => x.Id);
