无法定义与添加迁移一起使用的表关系

问题描述 投票:0回答:1

对重复表示歉意,因为我相信我没有问问题属性(重新发布问题)

我有两个模型电影和类别

-电影课有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},因为它不兼容。为此关系配置一个主键或一组具有兼容类型的外键属性。

非常感谢任何帮助

entity-framework entity-framework-migrations dbcontext
1个回答
0
投票

我想通了,通过添加 HasPrincipalKey(e=>e.MovieSer) 工作了。

© www.soinside.com 2019 - 2024. All rights reserved.