升级到EFCore7.0,出现Table name must be specified to configure a table-specific property mapping.
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.RemoveMigration.<>c__DisplayClass0_0.<.ctor>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Table name must be specified to configure a table-specific property mapping.
没有找到答案。最后在这发现了可能存在的问题:
[Table("FeaturedPosts")]
public class FeaturedPost : Post
{
public int ReferencePostId { get; set; }
public Post ReferencePost { get; set; } = null!;
}
[Table("Posts")]
public class Post
{
public int Id { get; set; }
public string? Title { get; set; }
public string? Content { get; set; }
}
Table是什么意思,看提示:

大概意思是,指定类映射到的数据库表。按照示例,把父类指定。
通过了。
不过我很奇怪为什么EF6没有这个问题?
230129补记:记得手动删除migration后,再add-migration init后再运行!默认情况下是update-database是不过的。

在将项目升级到EFCore7.0时遇到错误:Tablenamemustbespecifiedtoconfigureatable-specificpropertymapping。解决办法是在具有继承关系的类中指定[Table]属性以明确数据库表映射。示例中,为FeaturedPost和Post类指定了表格名。此问题在EF6中未出现,可能是因为不同版本间API行为的变化。
1万+

被折叠的 条评论
为什么被折叠?



