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() 的正确方法是什么?

EF Find() 与多个键

只有D0D1是复合主键的一部分(不是id,尽管这很奇怪,但我不是来评判你的设计)。 因此,您应该只在调用时传递这 2 列的值Find

dbContext.mySetOfdbDDV.Find(myD0,myD1)