VS添加Controller报Boilerplate错误及GroupToContactLink主键异常解决问询
问题原因
该错误本质是Visual Studio的控制器生成脚手架在内存加载EF模型时,部分场景下无法正确读取OnModelCreating中通过Fluent API配置的复合主键,并非你编写的Fluent API配置本身存在逻辑错误。
修复步骤
- 给
GroupToContactLink实体的三个复合主键字段加上显式的主键顺序注解,脚手架工具会优先读取属性上的注解,避免读取Fluent API配置失败的问题。修改后的字段代码如下:
[Required] [Key, Column(Order = 0)] public int ContactId { get; set; } [Required] [Key, Column(Order = 1)] public int GroupId { get; set; } [Required] [Key, Column(Order = 2)] public int LinkTypeId { get; set; }
- 可选操作:保持你原有
OnModelCreating中的Fluent API配置不变,避免后续EF迁移出现配置冲突,两种主键配置方式可以共存不会触发报错。 - 清理解决方案,删除项目根目录下的
bin和obj文件夹,重启Visual Studio后重新尝试添加控制器,此时脚手架即可正常识别复合主键配置。
如果以上操作完成后仍然报错,可以跳过脚手架生成流程,手动创建控制器类、编写对应的业务逻辑和视图,避开脚手架的内存模型检测bug即可。
内容的提问来源于stack exchange,提问作者Hecatonchires
相关产品推荐
相关产品推荐

