我正在使用C#在VS2012中使用EF5。我有两个表NIC和网络交换机,具有1:M的关系。网络切换可以有多个NIC,并且只能将NIC分配给一个NetworkSwitch。现在我想要的是,当我们向网络交换机添加一个值时,我希望根据每次在NIC表中插入新值或行来更新可用端口和使用的端口。请参阅下面的代码。
public class NIC
{
[Required]
public int idNic { get; set; }
[Required]
public string Manufacturer { get; set; }
[Required]
[DisplayName("IP Address")]
public int IPAddress { get; set; }
[Required]
[ForeignKey("idServer")]
public int idServer { get; set; }
[ForeignKey("idNetworkSwitch")]
public int? idNetworkSwitch { get; set; }
[Range(1,48,ErrorMessage="The Value must be between 1 and 48")]
[DisplayName("Network Switch Port")]
public int? NetworkSwitchPort { get; set; }
//Relationships
public virtual NetworkSwitch networkSwitch { get; set; }
public virtual Server server { get; set; }
}
public class NetworkSwitch
{
[Key]
public int idNetworkSwitch { get; set; }
[Required]
[StringLength(20)]
[DisplayName("Network Switch Name")]
public string SwitchName { get; set; }
[Required]
[Range(4,1024)]
[DisplayName("Total Ports on Swich")]
public int TotalPorts { get; set; }
[Required]
[DisplayName("Used Ports on Swich")]
public int UsedPorts { get; set; }
[Required]
[DisplayName("Available Ports on Swich")]
public int AvailablePorts { get; set; }
//relationships
public virtual Rack rack { get; set; }
public virtual ICollection<NIC> NICs { get; set; }
}
属性“UsedPorts”的默认值为48.那么如何计算“UsedPorts”和“AvailablePorts”属性? 每次我们在NIC表中插入新的ROW时,我们都要输入“switchport”号。这意味着它是NIC连接到网络交换机的端口。有没有一种方法,用户只能获得这个属性中的那些可用的端口?当用户选择从可用端口删除值的值时,使用的端口字段将更新。那么我们可以跟踪我们在NetworkSwitch上有多少端口以及我们拥有哪些端口?