Ich verwende die EntityFramework.Extended-Bibliothek, um die Überwachungsprotokollierung in meinem System zu implementieren. Wenn ich jedoch den Fremdschlüssel "TitleId" auf meinem Person-Objekt aktualisiere, wird es nicht als Fremdschlüssel registriert und ersetzt die ID nicht durch mein ausgewähltes Anzeigefeld.EntityFramework.Extended Audit - Fremdschlüsseleigenschaft IsRelationship immer falsch
Audit-Log config: (in meinem Global.asax Startdatei genannt wird)
public static class AuditLogConfiguration
{
public static void Register()
{
var auditConfiguration = AuditConfiguration.Default;
auditConfiguration.IncludeRelationships = true;
auditConfiguration.LoadRelationships = true;
auditConfiguration.DefaultAuditable = true;
// Use abbreviation value in audit log whenever Title is used as foreign key
auditConfiguration.IsAuditable<Title>()
.DisplayMember(x => x.Abbreviation);
}
}
Personenentität:
public class Person
{
[Key]
public int Id { get; set; }
[ForeignKey("Title")]
public int TitleId { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public virtual Title Title { get; set; }
}
Titel Einheit:
public class Title
{
public int Id { get; set; }
public string Abbreviation { get; set; }
public string Description { get; set; }
}
Logik Update:
var audit = BeginAudit();
person.TitleId = model.TitleId;
SaveChanges();
var log = audit.LastLog;
Wenn durch die Eigenschaftsänderungen in audit.LastLog
lookign wird die titlelD Modifikation nicht als Beziehung anerkannt und ist nicht meine Anzeige Umwandlung in den Config angegebene Anwendung.
Für die avoidan Ich habe alle Methoden versucht, einen Fremdschlüssel explizit zu deklarieren, und das Problem tritt immer noch auf. – Tomuke