基架时,表中已存在键
本文关键字:存在 | 更新日期: 2023-09-27 18:34:47
我正在做一个code first
的例子,基本上我有Products
和Categories
。
类别模型如下:
public class Category
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
}
Product
模型如下:
public class Product
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Description { get; set; }
[Required]
public decimal Price { get; set; }
[Required]
public int Stock { get; set; }
public string ImageName { get; set; }
//Category Navigation
public int CategoryId { get; set; }
public Category Category { get; set; }
}
当我尝试使用 Web API 2 Controller with actions
创建Controller
时,使用 Entity Framework scaffold
,我收到一个错误:
运行选定的代码生成器时出错:"密钥已 存在于表中'
我怀疑这是Product
模型的Category
导航部分,因为没有该代码,脚手架就可以工作了。
我做错了什么?我尝试将其创建为虚拟属性,但仍然遇到相同的错误。
您需要在 DbContext 中添加模型类
public DbSet<Product> Products{ get; set; }
public DbSet<Category> Categories{ get; set; }
现在你可以做脚手架了。
这个问题也将有助于更好地理解