EF首先不识别代码的Column属性?

问题描述 投票:0回答:1

我对Code First实体有以下类定义:

public class Matches
{
    [Key]
    [Required]
    [Column(Order = 1)]
    public Guid MatchGroup { get; set; }

    [Key]
    [Required]
    [Column(Order = 2)]
    public long ProcedureId { get; set; }

    public long MatchLevelId { get; set; }

    [ForeignKey("ProcedureId")]
    public virtual Procedure Procedure { get; set; }

    [ForeignKey("MatchLevelId")]
    public virtual ProcedureMatchLevel MatchLevel { get; set; }
}

但是,在创建初始迁移时,我收到以下错误:

Unable to determine composite primary key ordering for type 
'Entities.Procedures' Use the ColumnAttribute or the HasKey 
method to specify an order for composite primary keys.

如您所见,我使用的是[Column]属性。

有没有人遇到过这个问题?我已经尝试使用[ForeignKey]以相同的错误切换我的[Key, ForeignKey("Procedure")]声明所属的属性。


程序类:

[Table("ProcedureList")]
public class Procedure
{
    [Required]
    public int ProcedureId { get; set; }
    [Required]
    public string Code { get; set; }
    [Required]
    public string Description { get; set; }
}
c# entity-framework ef-code-first
1个回答
1
投票

您还需要为Procedure类定义主键

[Table("ProcedureList")]
public class Procedure
{
    [Key]
    [Required]
    public int ProcedureId { get; set; }
    [Required]
    public string Code { get; set; }
    [Required]
    public string Description { get; set; }
}
© www.soinside.com 2019 - 2024. All rights reserved.