我试图在一组具有外键和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()的正确方法是什么?
答案 0 :(得分:7)
只有D0
和D1
是您的复合主键的一部分(不是id
,就像那样奇怪,但我不是来判断您的设计)。因此,您只应在调用Find
dbContext.mySetOfdbDDV.Find(myD0,myD1)