Я использую 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; }
}
Если это невозможно сделать с помощью аннотаций данных, может кто-нибудь пролить свет на то, как это сделать в коде?