ASP.NET MVC 3 EntityType没有定义键

who*_*ee1 6 asp.net entity asp.net-mvc-3

我想显示客户信息.然后我创建了一些类; 客户,交货,订单,OrderLine,产品和rentalDB.rentalDB类设置产品,客户,订单,OrderLine和交付的5 DbSet.当我使用列表视图创建UserController时,我无法显示客户信息,并且它会出错:

One or more validation errors were detected during model generation:
System.Data.Edm.EdmEntityType: : EntityType 'OrderLine' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntityType: : EntityType 'Delivery' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet ?OrderLine? is based on type ?OrderLine? that has no keys defined.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet ?Delivery? is based on type ?Delivery? that has no keys defined.
Run Code Online (Sandbox Code Playgroud)

我不知道为什么这些实体需要密钥?我不知道这个错误..你能帮帮我吗?

--UserController.cs--

namespace MvcApplication2.Controllers
{
public class UserController : Controller
  {
    //
    // GET: /User/
    rentalDB _db = new rentalDB();

    public ActionResult Index()
    {
        var model = _db.Customer;
        return View(model);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

--Dlveryvery.cs在Models文件夹中 -

namespace MvcApplication2.Models
{
  public class Delivery
  {
    public int trackId { get; set; }
    public String address { get; set; }
    public String postCode { get; set; }
    public decimal deliveryPrice { get; set; }
    public DateTime deliveryDate { get; set; }
    public DateTime returnDate { get; set; }
  }
}
Run Code Online (Sandbox Code Playgroud)

- Models文件夹中的OrderLine.cs--

namespace MvcApplication2.Models
{
   public class OrderLine
   {
    public int basketId { get; set; }
    public int productId { get; set; }
    public int quantity { get; set; }
   }
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*eld 18

为了使用实体框架,每个实体都需要一个密钥.这是EF跟踪其缓存中的对象,将更新发布回底层数据存储以及将相关对象链接在一起的方式.

你的对象已经有了密钥,你只需告诉EF它们:

namespace MvcApplication2.Models
{
  public class Delivery
  {
    [Key] public int trackId { get; set; }
    public String address { get; set; }
    public String postCode { get; set; }
    public decimal deliveryPrice { get; set; }
    public DateTime deliveryDate { get; set; }
    public DateTime returnDate { get; set; }
  }
}
Run Code Online (Sandbox Code Playgroud)