Как создать ссылку на внешний ключ для составного ключа? - PullRequest
1 голос
/ 24 августа 2011

Я использую Entity Framework 4.1 в приложении MVC 3. У меня есть объект, где у меня первичный ключ состоит из двух столбцов (составной ключ). И это используется в другом объекте в качестве внешнего ключа. Но часть ключа должна использоваться в нескольких свойствах навигации. Как мне создать отношения? Я безуспешно попробовал следующее, потому что вы не можете указать более одного свойства навигации в аннотации внешнего ключа:

public class Employee
{
    [Key, Column(Order = 0), MaxLength(40)]
    public string Id { get; set; }
    [Key, Column(Order = 1)]
    public int Company { get; set; }

    [ForeignKey("CompanyId")]
    public Company Company { get; set; }
}

public class Event
{
    [Key, Column(Order = 0), MaxLength(40)]
    public string EventReference { get; set; }
    [Key, ForeignKey("AssignedEmployee, Organiser"), Column(Order = 1)]
    public int CompanyId { get; set; }

    public Employee AssignedEmployee { get; set; }

    [ForeignKey("AssignedEmployee"), Column(Order = 0)]
    public string EmployeeId { get; set; }

    [ForeignKey("CompanyId")]
    public Company Company { get; set; }

    public Person Organiser { get; set; }

    [ForeignKey("Organiser"), Column(Order = 0)]
    public string OrganiserId { get; set; }
}

Если это невозможно сделать с помощью аннотаций данных, может кто-нибудь пролить свет на то, как это сделать в коде?

...