Also ich habe eine EF-Klasse mit zwei Eigenschaften.Angeben einer Eigenschaft als Attribut einer anderen Eigenschaft?
public class MyTable
{
public DateTime Requested { get; set; }
public Guid RequestedUserID { get; set; }
}
Jetzt möchte ich in der Lage sein, den aktuellen Benutzer-ID in RequestedUserID
einzufügen, wenn Gewünscht geändert wird. Um dies zu tun, kann ich EFs DbContext.SaveChanges()
Ereignis überschreiben und überprüfen, ob die irgendeine modifizierte Spalte ein gegebenes Attribut hat, das meinen Code anweist, auch eine zugehörige UserID
Spalte zu ändern. Beispiel Attribute Markup:
public class MyTable
{
[TrackModifingUser(UserIDColumn = nameof(RequestedUserID))]
public DateTime Requested { get; set; }
public Guid RequestedUserID { get; set; }
}
Und dann später in meinem DbContext.SaveChanges()
Fall würde ich das Hotel mit dem Namen bekommen und seinen Wert entsprechend eingestellt.
Problem, ich wünschte, mein Attribut könnte die Eigenschaft selbst irgendwie speichern. Und damit überspringen Sie die Immobilie nach Namen. Etwas wie das.
public class MyTable
{
[TrackModifingUser(UserIDColumn = RequestedUserID)]
public DateTime Requested { get; set; }
public Guid RequestedUserID { get; set; }
}
Ist dies möglich oder muss ich die Eigenschaft zur Laufzeit auflösen? Gibt es irgendeine Art von Zwischenspeicherung, die ich verwenden kann, um zu vermeiden, dass die Eigenschaft mehr als einmal für die gleiche Spalte namentlich genannt wird?
EF ist nur ein Beispiel Anwendungsfall. Das Ziel besteht darin, einzelnen Spalten zu erlauben, sich gegenseitig in einem Attribut ohne die Verwendung von 'GetPropertByName' (oder was auch immer der Methodenname ist) anzugeben. – Licht