具有多个键的EF Find()

时间:2016-07-12 15:42:45

标签: c# entity-framework

我试图在一组具有外键和2个主键的EF类上使用Find(),但是我一直收到错误。

这是我的班级:

public class dbDDV
    {
        [ForeignKey("dbf")]
        [Column(Order = 0)]
        public int id { get; set; }

        [Key]
        [Column(Order = 1)]
        public DateTime D0 { get; set; }

        [Key]
        [Column(Order = 2)]
        public DateTime D1 { get; set; }

        public double V{ get; set; }
    }

对于id,D0和D1的特定值,我一直在尝试使用Find():

dbContext.mySetOfdbDDV.Find(myId,myD0,myD1)

以下是我收到的错误:

  

System.ArgumentException:传递的主键值的数量必须与实体上定义的主键值的数量相匹配。

对于这种情况,Find()的正确方法是什么?

1 个答案:

答案 0 :(得分:7)

只有D0D1是您的复合主键的一部分(不是id,就像那样奇怪,但我不是来判断您的设计)。因此,您只应在调用Find

时传递这两列的值
dbContext.mySetOfdbDDV.Find(myD0,myD1)