El código de EF: First hereda una sola clase base para implementar historocity fácil
Estoy teniendo algunos errores al implementar mi plan como se describe a continuación. No estoy tan interesado en este punto en resolver errores particulares como lo estoy en si esto es o no una buena idea.
Todos los objetos con capacidad histórica descienden de una clase comúnAuditableObject
con una sola propiedadpublic Guid ID { get; set; }
.
Un descendiente podría ser:
public class Taco : AuditableObject { public string Seasoning { get; set; } }
Ahora, me gustaría implementar el controlador de eventos de guardado para escribir en la siguiente tabla (clase)
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; }
}
No estoy seguro si necesito elObjectClassName
ya que puedo verificar el tipo de objeto en tiempo de ejecución pero está ahí por si acaso.
Al guardar, básicamente, serializaría el objeto antes y después de las propiedades respectivas, guardaría una marca de tiempo y configuraría el objeto, es decir, asignaría el FK.
¿Es esta una manera fea de hacerlo? ¿Hay algún inconveniente obvio al descender de una sola clase con el Código EF Primero como lo estoy haciendo?