Сущность определения внешнего ключа - PullRequest
0 голосов
/ 04 мая 2018

У меня следующая структура классов, и я использую первые миграции кода сущности для создания базы данных из этих классов:

public class t_ParentClass
{
    /// <summary>
    /// Unique id
    /// </summary>
    public int UNID { get; set; }
}


public class t_ChildClass
{
    /// <summary>
    /// UNID
    /// </summary>
    public int UNID { get; set; }

    /// <summary>
    /// Event Id
    /// </summary>
    public int? ParentId { get; set; }

    /// <summary>
    /// Review event
    /// </summary>
    public t_ParentClass Parent { get; set; }
}

Эта установка создала столбец внешнего ключа в таблице t_ChildClass

Все нормально и хорошо работает.

Однако я также использую Linq-to-entities для запроса этих таблиц.

Проблема с вышеуказанной настройкой заключается в том, что я не могу сделать следующее:

var parent = context.parent.include(x => x.child);

Итак, чтобы исправить это, я могу изменить свою структуру следующим образом:

public class t_ParentClass
{
    /// <summary>
    /// Unique id
    /// </summary>
    public int UNID { get; set; }

    /// <summary>
    /// Child
    /// </summary>
    public List<t_ChildClass> Child { get; set; }
}

public class t_ChildClass
{
    /// <summary>
    /// UNID
    /// </summary>
    public int UNID { get; set; }

    /// <summary>
    /// Event Id
    /// </summary>
    public int? ParentId { get; set; }

    /// <summary>
    /// Review event
    /// </summary>
    public t_ParentClass Parent { get; set; }
}

Проблема в том, что теперь миграция хочет добавить новый столбец в дочернюю таблицу, чтобы представить то, что воспринимается как новый внешний ключ для родительской таблицы.

Итак, мой вопрос:

Как заставить его распознавать, что столбец уже существует в дочерней таблице, и использовать его в качестве связи между родительской и дочерней таблицей вместо создания нового столбца.

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

Может быть, я смогу сделать это через EntityTypeConfiguration класс?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...