EntityType:EntitySet'Orderlines'基于没有定义键的'Orderline'类型

时间:2014-04-21 08:03:01

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

我正试图访问比萨饼店#39;从控制器模型,但我得到以下错误 - (这在尝试添加OrderLine模型之前工作正常):

  

EntityType' Orderline'没有定义键。定义此EntityType的键。订单行:EntityType:EntitySet' Orderlines'是根据   输入' Orderline'没有定义键。

我一直在看问题是添加[Key],但我已经做到了。

比萨饼:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Pizza.Domain.Entities
{
    public class Pizza
    {
    [Key]
    public int PizzaId { get; set; }

    public string Name { get; set; }
    public string Description { get; set; }
    public decimal Price { get; set; }
    public string Size { get; set; }
    public string Status { get; set; }
    }
}

订单行

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PizzaShop1.Domain.Entities
{
public class Orderline
{
    [Key]
    public int OrderlineId;

    [ForeignKey("PizzaId")]
    public Pizza PizzaId;
    public decimal OrderlinePrice;
}
}

的DbContext

namespace Pizza.Domain.Concrete
{
    public class EFDbContext : DbContext
    {
        public DbSet<Pizza> Pizzas { get; set; }
        public DbSet<Orderline> Orderlines { get; set; }
    }
}

1 个答案:

答案 0 :(得分:2)

如果我没记错的话,它必须是一个财产。

public class Orderline
{
    [Key]
    public int OrderlineId {get; set;}

    [ForeignKey("PizzaId")]
    public Pizza PizzaId {get; set;}
    public decimal OrderlinePrice {get; set;}
}