Как сделать внешний ключ внутри модели для определенного столбца составного первичного ключа в Entity Framework - PullRequest
0 голосов
/ 17 апреля 2019
class1
{
    [key]
    public string id1 {get; set;}

    [Key]
    public string key2 {get; set;}
}

class2
{
    [foreignKey("class1")]
    public string class1Id{ get; set; }
}

Теперь здесь внутри class2 Я хочу использовать только id1 столбец class1 в качестве внешнего ключа.

Как это сделать?

1 Ответ

0 голосов
/ 17 апреля 2019

Если вы предпочитаете аннотации данных, просто примените атрибут ForeignKey к свойству навигации и предоставьте разделенный запятыми список с именем свойства FK

 class1{
    [key]
    public string id1 {get; set;}

    [Key]
    public string key2 {get; set;}
    }

    class2{

    public string id1 { get; set;}

    public string key2 { get; set;}

      [ForeignKey("id1,key2")] // <= the composite FK
      public virtual class1 class1{ get; set; }

    }

Использование свободно конфигурируемого API намного проще для понимания и менее подвержено ошибкам:

modelBuilder.Entity< class2>()
    .HasRequired(e => e. class1) 
    .HasForeignKey(e => new { e.id1, e.key2 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...