【问题标题】:asp.net EF code first model for PBX managment用于 PBX 管理的 asp.net EF 代码优先模型
【发布时间】:2017-11-29 12:10:47
【问题描述】:

我想制作一个简单的应用程序来与我的 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; }
}

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

【问题讨论】:

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


    【解决方案1】:

    您需要另一个表来记录历史。比如:

            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>();
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多