EF Find() 与多个键
本文关键字:Find EF | 更新日期: 2023-09-27 17:56:29
我正在尝试在一组具有外键和 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() 的正确方法是什么?
只有D0
和D1
是复合主键的一部分(不是id
,尽管这很奇怪,但我不是来评判你的设计)。 因此,您应该只在调用时传递这 2 列的值Find
dbContext.mySetOfdbDDV.Find(myD0,myD1)