我正在编写一个产品库存跟踪器应用程序,并且我正在尝试为每个库存创建一个数据审计跟踪。每当修改股票时,我都希望将其副本存储在另一个表中,包括编辑者。问题是还需要存储一组动态的CustomProperties 。跟踪更改的最佳方式是什么?我的第一个想法是创建一个具有相同字段的表。
目前我的库存类是这样存储的。
public class Inventory
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int InventoryID { get; set; }
public int ProductID { get; set; }
[ForeignKey("ProductID")]
public Product Product { get; set; }
public ICollection<CustomInventoryProperty> CustomProperties { get; set; }
}
并且自定义属性是这样存储的
public class CustomInventoryProperty
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CustomPropertyID { get; set; }
public string PropertyName { get; set; }
public string PropertyValue { get; set; }
public int InventoryID { get; set; }
[ForeignKey("ProductID")]
public virtual Inventory Inventory { get; set; }
}