我如何有一个引用多个表的列

时间:2019-02-27 18:26:36

标签: entity-framework entity-framework-6

我有一个表,该表维护其他表的更改历史记录。目前,它已使用触发器进行了更新,但我正在尝试将其移入实体框架。问题在于历史记录表需要知道哪个实体发生了更改。

我有这些实体。

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发生更改时,History表将存储有关更改的信息。 sourceID列将为PersonID,而源类型将指示其为Person表。可能会有多个表可能发生更改,因此SourceID并不总是PersonID。

PersonID是一个身份列。保存时,我不知道如何设置SourceID = PersonID。保存完成之前,不会设置personID。我可以保存“人员”,然后将其插入历史记录中,以将其包装在事务中。

是否有实体框架可以解决这个问题?

0 个答案:

没有答案