Сопоставьте несколько PK с Entity Framework

У меня сейчас 2 класса. Первый — это актив, второй — услуги, связанные с этим активом. Таблица Asset в SQL Server имеет PK как для ID, так и для workflow_id.

public class Asset
{
    public int ID { get; set; }
    public int workflow_id { get; set; }

    public string name { get; set; }
}

Вторая таблица — это сервисы, у которых есть PK по 3 столбцам, идентификатор сервиса, workflow_id и актив_ид, сервис тоже привязан.

public class Services
{
    public int ID { get; set; }
    public int workflow_id { get; set; }
    public int asset_id { get; set; }

    public string service_description { get; set; }
}

Пример данных: Актив с ID#10 в workflow_id#27 соответствует всем Услугам с активом_id#10 в workflow_id#27.

Как я могу сопоставить эти два вместе с ПК с несколькими столбцами?


person Alex.Ritna    schedule 03.10.2012    source источник


Ответы (1)


Аннотируйте столбцы, которые вы хотите сделать ПК. В вашем примере для первой модели у вас будет:

    [Key, System.ComponentModel.DataAnnotations.Schema.Column(Order = 0)]
    public int ID { get; set; }


    [Key, System.ComponentModel.DataAnnotations.Schema.Column(Order = 1)]
    public int workflow_id { get; set; }
person Steve Sloka    schedule 03.10.2012
comment
Есть ли способ сделать эти аннотации с несколькими столбцами с помощью Fluent API? - person Alex.Ritna; 03.10.2012
comment
Я нашел решение этого @MortezaManavi здесь - person Alex.Ritna; 03.10.2012