mvc实体类型没有定义键

时间:2016-08-25 14:45:25

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我是MVC新手,

我使用Visual Studio 2015,EF6

我创建了新的Web项目,并按照本教程(尝试学习)一步一步地进行操作: http://www.asp.net/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-1

我现在在第8部分,我创建了ShoppingCartController,ShoppingCartViewModel,ShoppingCartRemoveViewModel。

现在,根据" Ajax更新jQuery"标题,我应创建购物车索引页面,该页面强烈输入ShoppingCartViewModel并使用列表视图模板。

但是当我试图这样做时,我得到一个错误 enter image description here

我该如何解决这个问题?

编辑:

public class ShoppingCartViewModel
    {
        public List<Cart> CartItems { get; set; }
        public decimal CartTotal { get; set; }
    }

正如教程中所示...

由于

2 个答案:

答案 0 :(得分:0)

是的,根据您上面的评论,我建议您按照下面提到的教程进行操作。这与你当前的路径非常匹配。那是MVC 5。请看到。好运!

Getting Started with ASP.NET MVC 5

对于您上面的问题,您可以下载上述教程的源代码,然后您可以自己找出问题。

以下是该链接:Source code

答案 1 :(得分:0)

每个实体都需要一个主键,有几种方法可以设置主键。

如果类中的属性被命名为ID,则EF将自动推断密钥:

public int ID {get;set;}

或者您可以使用属性将特定属性指定为键:

[Key]
public int SomeKey {get;set;}

命名类XXViewModel意味着它不是持久化类(未保存在数据库中)。因此,模型是您要保存在数据库中的类,而 ViewModel 是用于将数据传递到视图的类。

所以你的模型就是这样:

public class ShoppingCartModel
{
    [Key]
    public int ID {get;set;}

    public List<Cart> CartItems { get; set; }
    public decimal CartTotal { get; set; }
}