为什么会出现映射错误?

时间:2019-06-21 12:27:43

标签: c# .net entity-framework entity-framework-6 .net-4.5

我首先基于一个预先存在的数据库运行代码,但遇到映射错误。 我尝试放置外键注释,但没有成功。

这里是类映射:

[Table("tablle_1")]
public partial class Table1
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public Table1()
    {
        Table2 = new HashSet<Table2>();
    }

    [Key]
    [Column(Order = 0)]
    public long usu_id_apr { get; set; }

    [Other non-important columns]

    [Key]
    [Column(Order = 1)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public long usu_numweb { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]

    public virtual ICollection<Table2> Table2 { get; set; }
}

[Table("Table2")]
public partial class usu_twebnotifi
{
    [Key]
    [Column(Order = 0)]
    public long usu_id_not { get; set; }

    [Other non-important columns]

    [Key]
    [Column(Order = 1)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public long usu_numweb { get; set; }

    [StringLength(999)]
    public string usu_obsnot { get; set; }

    public long? usu_id_apr { get; set; }

    public virtual Table1 Table1 { get; set; }
}

这是OnModelCreation方法

modelBuilder.Entity<Table1>()
            .HasMany(e => e.Table2)
            .WithOptional(e => e.Table1)
            .HasForeignKey(e => new { e.usu_id_apr, e.usu_numweb });

运行时,出现此错误:

  

Data.Table1_Table2 ::多重性与关系“ Table1_Table2”中的角色“ my_foreign_key”中的引用约束冲突。由于“从属角色”中的所有属性都是不可为空的,因此“主体角色”的多重性必须为“ 1”。

     

Table1_Table2_Source_Table1_Table2_Target ::关系约束中的从属角色和主体角色中的属性数必须相同。

你能帮我吗?

谢谢。

0 个答案:

没有答案