实体框架复合主键和外键

问题描述

我正在迁移一个在 .NET Framework 4.7.2 中制作的软件。我有一个 sql Server 数据库。为了创建实体,我首先使用数据库中的代码添加一个 ADO.net 对象。

实体已创建,但当我执行代码时,它返回以下错误

MEG_OFERTAS_MEG_OPERACIOnes: : 中所有属性的类型 引用约束的从属角色必须与 主体角色中的相应属性类型。的类型 实体“MEG_OPERACIOnes”上的属性“DT_DIA_OPERACION”不匹配 实体“MEG_OFERTAS”上的属性“I_NRO_OFERTA”的类型 引用约束“MEG_OFERTAS_MEG_OPERACIOnes”。

我的实体如下

public partial class MEG_OFERTAS : IEntity
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2214:DoNotCalloverridableMethodsInConstructors")]
    public MEG_OFERTAS()
    {
        MEG_OPERACIOnes = new HashSet<MEG_OPERACIOnes>();
        MEG_OPERACIOnes1 = new HashSet<MEG_OPERACIOnes>();
    }

    [Key]
    [Column(Order = 0,TypeName = "numeric")]
    public decimal I_NRO_OFERTA { get; set; }

    [Key]
    [Column(Order = 1,TypeName = "datetime2")]
    public DateTime DT_DIA_OPERACION { get; set; }

    .
    .
    .
    .

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<MEG_OPERACIOnes> MEG_OPERACIOnes { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<MEG_OPERACIOnes> MEG_OPERACIOnes1 { get; set; }
}

一个

public partial class MEG_OPERACIOnes : IEntity
{
    [Key]
    [Column(Order = 0,TypeName = "numeric")]
    public decimal I_NRO_OPERACION { get; set; }

    [Key]
    [Column(Order = 1,TypeName = "datetime2")]
    public DateTime DT_DIA_OPERACION { get; set; }

    [Column(TypeName = "numeric")]
    public decimal I_NRO_OFERTA_COMPRA { get; set; }

    [Column(TypeName = "numeric")]
    public decimal I_NRO_OFERTA_VENTA { get; set; }
    .
    .
    .
    public virtual MEG_OFERTAS MEG_OFERTAS { get; set; }

    public virtual MEG_OFERTAS MEG_OFERTAS1 { get; set; }
}

在 de dbcontext 我有下一段代码

modelBuilder.Entity<MEG_OFERTAS>()
    .HasMany(e => e.MEG_OPERACIOnes)
    .Withrequired(e => e.MEG_OFERTAS)
    .HasForeignKey(e => new { e.I_NRO_OFERTA_COMPRA,e.DT_DIA_OPERACION })
    .WillCascadeOnDelete(false);

modelBuilder.Entity<MEG_OFERTAS>()
    .HasMany(e => e.MEG_OPERACIOnes1)
    .Withrequired(e => e.MEG_OFERTAS1)
    .HasForeignKey(e => new { e.I_NRO_OFERTA_VENTA,e.DT_DIA_OPERACION })
    .WillCascadeOnDelete(false);

The ER Diagram for one of the relationships

And the other relationship

谁能帮我解决我的问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)