对重复表示歉意,因为我相信我没有问问题属性(重新发布问题)
我有两个模型电影和类别
-电影课有PK
public Int64 MovieSer { 获取;放; } //PK
-并包括类别属性列表
公共列表类别{ get;放; }
类别类作为主键和外键
public Int64 CategorySer { 获取;放; } //PK
public Int64 MovieSer { 获取;放; } //FK
我尝试使用 OnModelCreating() 方法来定义关系,如下所示:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//如果映射到 CategoryId,这部分有效 - 但这不是我想要的
// modelBuilder.Entity().HasMany(o =>
o.Categories).WithOne().HasForeignKey(s=>s.CategoryId);
//我想要的是映射它MovieSer但是添加迁移失败
modelBuilder.Entity().HasMany(o =>
o.Categories).WithOne().HasForeignKey(s=>s.MovieSer);
}
但是添加迁移失败 错误: 具有外键属性 {'MoviesSer' : long} 的从“Category”到“Movie.Categories”的关系无法定位主键 {'MovieSer' : string},因为它不兼容。为此关系配置一个主键或一组具有兼容类型的外键属性。
非常感谢任何帮助
我想通了,通过添加 HasPrincipalKey(e=>e.MovieSer) 工作了。