Entity Framework - Отображение многих на многие отношения - PullRequest
2 голосов
/ 12 июня 2011

Я изо всех сил пытаюсь сопоставить эти две таблицы, столбец TitleID в таблице Name сопоставляется с TitleID в таблице Title. Первичные ключи таблицы: NameTableID / TitleTableID и являются уникальными, NameID, TitleID (в обеих таблицах) не являются уникальными, текущая запись найдена нулем в столбце DateEnd.

public class Name
{
    public int NameTableID { get; set; }
    public int NameID { get; set; }
    public int TitleID { get; set; }    // Maps to Title.TitleID
    public virtual Title Title { get; set; }
    public string GivenName { get; set; }
    public string FamilyName { get; set; }
    public DateTime DateStart { get; set; }
    public DateTime? DateEnd { get; set; }
}
public class Title
{
    public int TitleTableID { get; set; }
    public int TitleID { get; set; }    // Maps to Name.TitleID
    public string Description { get; set; }
    public DateTime DateStart { get; set; }
    public DateTime? DateEnd { get; set; }
}

Я предполагаю, что мне нужно добавить немного кода к OnModelCreating в моем классе контекста БД, но я борюсь с отображением / кодом, есть идеи?

* +1015 * Спасибо, Martin

1 Ответ

1 голос
/ 12 июня 2011

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

В «многие-ко-многим» вы должны выбрать уникальный ключ на обоих концах, и должна быть таблица соединений, которая будет строить пары связанных ключей. EF не поддерживает уникальные ключи, поэтому единственный способ построения отношения «многие ко многим» находится поверх первичных ключей: если вам нужно отношение «многие ко многим», вы должны построить его на Title.TitleTableID и Name.NameTableID.

...