asp.net EF代码第一个用于PBX管理的模型

时间:2017-06-26 15:35:17

标签: c# asp.net entity-framework model ef-code-first

我想将简单的应用程序与我的PBX一起使用。我想管理连接到我的PBX的提供商和线路。主要对象是ProviderLine。每个提供商都有一些连接到它的线路。可以添加或删除行,启用或禁用和保留行。我想将行的状态和行为历史保存在一个表中。这个正确的解决方案还是我需要为历史创建另一个表?

public class Line
{
    public int LineId { get; set; }
    public Provider Provider { get;set;}
    public string Login { get; set; }
    public string Pass { get; set; }
    public string Domain { get; set; }
    public string ProjectOwner { get; set; }
    public string Project { get; set; }
    public string OutNumber { get; set; }
    public string InNumber { get; set; }
    public string Description { get; set; }
    public DateTime Begin_datetime { get; set; }
    public DateTime End_datetime { get; set; }
    public Human TechGuy { get; set; }
    public Human Manager { get; set; }
}


public class Provider
{
    public int ProviderId { get; set; }
    public string Name { get; set; }
    public string OurSideData { get; set; }
    public string TheirSideData { get; set; }
    public string Description { get; set; }
    public DateTime Begin_datetime { get; set; }
    public DateTime End_datetime { get; set; }
    public Currency Currency { get; set; }
}

在逻辑中创建代码第一模型的最佳解决方案是什么?也许我需要添加一些额外的字段?

1 个答案:

答案 0 :(得分:0)

您需要另一张历史记录表。类似的东西:

        public class Line
        {
            public int LineId { get; set; }
            public virtual Provider Provider { get; set; }
            public string Login { get; set; }
            public string Pass { get; set; }
            public string Domain { get; set; }
            public string ProjectOwner { get; set; }
            public string Project { get; set; }
            public string OutNumber { get; set; }
            public string InNumber { get; set; }
            public string Description { get; set; }
            public DateTime Begin_datetime { get; set; }
            public DateTime End_datetime { get; set; }
            public Human TechGuy { get; set; }
            public Human Manager { get; set; }
            public virtual ICollection<LineStatusHistory> ChangeHistory { get; } = new HashSet<LineStatusHistory>();
        }

        public class LineStatusHistory
        {
            [Key( )]
            public int LineId { get; set; }
            [Key()]
            public int LineStatusHistoryId { get; set; }
            public virtual Line Line { get; set; }
            public DateTime ChangeDate { get; set; }
            public string Change { get; set; }
        }


        public class Provider
        {
            public int ProviderId { get; set; }
            public string Name { get; set; }
            public string OurSideData { get; set; }
            public string TheirSideData { get; set; }
            public string Description { get; set; }
            public DateTime Begin_datetime { get; set; }
            public DateTime End_datetime { get; set; }
            public Currency Currency { get; set; }
            public virtual ICollection<Line> Lines { get; } = new HashSet<Line>();
        }