【发布时间】:2013-11-30 11:13:18
【问题描述】:
我在执行我的计划时遇到了一些错误,如下所述。在这一点上,我对解决特定错误并不那么感兴趣,因为我对这是否是一个好主意很感兴趣。
所有具有历史功能的对象都来自具有单个属性 public Guid ID { get; set; } 的公共类 AuditableObject。
后代可能是:
public class Taco : AuditableObject { public string Seasoning { get; set; } }
现在,我想实现保存事件处理程序以写入下表(类)
public class AuditItem
{
public Guid ID { get; set; }
public virtual AuditableObject Object { get; set; }
public string ObjectClassName { get; set; } //ugly
public string OldObjectXMLData { get; set; }
public string NewObjectXMLData { get; set; }
public DateTime Timestamp { get; set; }
}
我不确定是否需要 ObjectClassName,因为我可以在运行时检查对象的类型,但它只是以防万一。
在保存时,我基本上会将对象前后序列化到各自的属性,保存时间戳,然后设置对象 - 即映射 FK。
这是一种丑陋的做法吗?像我这样使用 EF Code First 从单个类下降有什么明显的缺点吗?
【问题讨论】:
标签: c# entity-framework inheritance database-design ef-code-first