我正在做一个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; }
}
当我尝试使用Controller
使用Web API 2 Controller with actions
创建Entity Framework scaffold
时,我收到错误消息:
运行所选代码生成器时出错:'Key已经存在 存在于表'
中
我怀疑它是Category
模型的Product
导航部分,因为没有该代码,脚手架就可以工作。
我做错了什么?我试图将其创建为虚拟财产,但我仍然遇到同样的错误。
答案 0 :(得分:8)
您需要在DbContext中添加Model类
public DbSet<Product> Products{ get; set; }
public DbSet<Category> Categories{ get; set; }
现在你可以做脚手架了。
This问题也有助于更好地理解