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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta