Почему я получаю недостаточно картографическую ошибку? - PullRequest
0 голосов
/ 21 июня 2019

Сначала я запускаю код на основе уже существующей базы данных и получаю ошибку сопоставления. Я пытался поместить аннотацию внешнего ключа, но безуспешно.

Вот это отображение классов:

[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: множественность конфликтует с референтным ограничением в роли «my_foreign_key» в отношении «Table1_Table2». Поскольку все свойства в зависимой роли не имеют значения NULL, кратность основной роли должна быть равна 1.

Table1_Table2_Source_Table1_Table2_Target:: количество свойств в зависимых и главных ролях в ограничении отношений должно быть одинаковым.

Не могли бы вы мне помочь?

Заранее спасибо.

...