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?