使用asp .net mvc 3的多个主键

Sar*_*ura 45 sql-server-2005 entity-framework-4.1 asp.net-mvc-3

我正在使用asp .net mvc 3,当我尝试在表中插入数据时,我遇到了包含2个主键的实体的问题.

 public class LineItem
    {
        [Key]
        public int OrderId { get; set;}
        [Key]
        public int LineNum  { get; set;}
        public string ItemId { get; set;}
        public int Quantity { get; set;}
        public decimal UnitPrice { get; set; }

    }
Run Code Online (Sandbox Code Playgroud)

当我尝试插入时出现此错误:

无法确定类型"ApplicationMVC3.Models.LineItem"的复合主键排序.使用ColumnAttribute或HasKey方法指定组合主键的顺序.

愿有人帮帮我!

ver*_*ald 74

假设这实际上是一个复合键,因为你不能有2个主键......错误信息告诉你到底要做什么,即添加一个订单.您可以通过添加[Column(Order = 0)][Column(Order = 1)]键列来完成此操作.

对于你的例子:

public class LineItem
    {
        [Key][Column(Order = 0)]
        public int OrderId { get; set;}
        [Key][Column(Order = 1)]
        public int LineNum  { get; set;}
        public string ItemId { get; set;}
        public int Quantity { get; set;}
        public decimal UnitPrice { get; set; }

    }
Run Code Online (Sandbox Code Playgroud)

  • 使用System.ComponentModel.DataAnnotations.Schema; (5认同)
  • 感谢您的帮助,我添加了这个[Key] [Column(Order = 0)] public int OrderId {get; set;} [Key] [Column(Order = 1)] public int LineNum {get; 设置;}问题解决了 (3认同)