Ich habe eine Klasse Benutzer. UserOne und UserTwo sind Benutzer. Ich muss alle Fremdschlüsselbeziehungen von UserTwo zu UserOne übertragen.Aktualisieren Sie alle fremden Schlüsselnavigationen in Entitätskern
Ich kann dies manuell tun, indem Sie:
userTwo.PostsCreatedByUser.ToList().ForEach(a => a.CreatedByUserId = userOne.Id);
userTwo.NotesCreatedByUser.ToList().ForEach(a => a.CreatedByUserId = userOne.Id);
context.SaveChanges();
Aber ich frage mich, ob es eine Möglichkeit, diesedynamisch zu tun war? Wenn ich mit der obigen Methode eine neue Tabelle mit einer CreatedByUserId-Spalte hinzufügen würde, müsste ich zu dieser Prozedur zurückkehren und sie mit der neuen Sammlung aktualisieren. Hier
eine übersicht der Beispielklassen:
public partial class User
{
public User()
{
PostsCreatedByUser = new HashSet<Post>();
NotesCreatedByUser = new HashSet<Note>();
}
public virtual ICollection<Posts> PostsCreatedByUser { get; set; }
public virtual ICollection<Notes> NotesCreatedByUser { get; set; }
}
public partial class Post
{
public Post() { }
public int CreatedByUserId { get; set; }
public virtual User CreatedByUser { get; set; }
}
public partial class Note
{
public Note() { }
public int CreatedByUserId { get; set; }
public virtual User CreatedByUser { get; set; }
}
Ihre einzige andere Wahl scheint die Reflexion zu sein. – gldraphael