Как я могу иметь один столбец, который ссылается на несколько таблиц - PullRequest
0 голосов
/ 27 февраля 2019

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

У меня есть эти сущности.

public class History
    {
        [Key]
        public int HistoryID { get; set; }

        public int SourceID { get; set; }
        public string SourceType { get; set; }
    }


public class Person
{
   [Key]
   public int PersonID { get; set; }

    public int HistoryID { get; set; }
    public virtual History History { get; set; }
}

Когда есть изменение в Person, таблица истории хранит информацию об изменении,Столбец sourceID будет PersonID, а тип источника будет указывать, что это таблица Person.Может быть несколько таблиц, которые могут измениться, поэтому SourceID не всегда PersonID.

PersonID - это столбец идентификаторов.Когда я сохраняю, я не знаю, как установить SourceID = PersonID.PersonID не устанавливается до завершения сохранения.Я мог бы сохранить Человека, а затем сделать вставку для истории, чтобы обернуть это в транзакции.

Есть ли способ решить эту проблему с помощью структуры сущностей?

...