C# 具有多个键的EF Find()
我试图在一组EF类上使用Find(),该类有一个外键和两个主键,但是我不断得到错误 这是我的班级:C# 具有多个键的EF Find(),c#,entity-framework,C#,Entity Framework,我试图在一组EF类上使用Find(),该类有一个外键和两个主键,但是我不断得到错误 这是我的班级: public class dbDDV { [ForeignKey("dbf")] [Column(Order = 0)] public int id { get; set; } [Key] [Column(Order = 1)] public DateTime D0 { get; set; }
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()
以下是我收到的错误:
System.ArgumentException:传递的主键值数量必须与实体上定义的主键值数量匹配
在这种情况下,Find()的正确方法是什么?只有
D0
和D1
是复合主键的一部分(不是id
,尽管这很奇怪,但我不是来评判你的设计的)。因此,在调用Find
dbContext.mySetOfdbDDV.Find(myD0,myD1)
身份证也是必需的。最后,我在id列中添加了[Key],使其成为主键和外键,从而使我可以像最初一样使用Find。这很有效。在我的实现中,我最终改变了设计,将[Key]添加到id列中,以便同时作为主键和外键。
dbContext.mySetOfdbDDV.Find(myD0,myD1)