Kod EF-First dziedziczy pojedynczą klasę bazową, aby zaimplementować łatwą historyczność

Mam problemy z realizacją mojego planu, jak opisano poniżej. W tym momencie nie jestem tak zainteresowany rozwiązywaniem konkretnych błędów, czy nie jest to dobry pomysł.

Wszystkie obiekty zdolne do historii pochodzą ze wspólnej klasyAuditableObject z jedną własnościąpublic Guid ID { get; set; }.

Potomek może być:

public class Taco : AuditableObject { public string Seasoning { get; set; } }

Teraz chciałbym zaimplementować procedurę obsługi zdarzeń składowania, aby zapisać do następującej tabeli (klasy)

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; }
}

Nie jestem pewien, czy potrzebujęObjectClassName ponieważ mogę sprawdzić typ obiektu w czasie wykonywania, ale jest tam na wszelki wypadek.

Podczas zapisywania zasadniczo serializowałbym obiekt przed i po odpowiednich właściwościach, zapisywał znacznik czasu i ustawiał obiekt - tj. Mapował FK.

Czy to brzydki sposób na to? Czy są jakieś oczywiste wady zejścia z jednej klasy z kodem EF First?

questionAnswers(1)

yourAnswerToTheQuestion