Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[C#] Gérer les relations comme Entity framework #427

Open
rodolpheV opened this issue Dec 24, 2024 · 0 comments
Open

[C#] Gérer les relations comme Entity framework #427

rodolpheV opened this issue Dec 24, 2024 · 0 comments

Comments

@rodolpheV
Copy link

rodolpheV commented Dec 24, 2024

Bonjour,
J'aimerais pouvoir faire comme dans ce post stackoverflow:
https://stackoverflow.com/questions/52615106/entity-framework-inserting-a-parent-and-child-model-with-fk-simultaneously

List<PARENT> parents = getParents();
foreach (PARENT parent in parents)
{
    db.PARENT.add(parent);
    List<CHILD> children = getChildren();
    foreach (CHILD child in children)
    {
        child.PARENT = parent;
        db.CHILD.add(child);
    }
}

db.SaveChanges();

Dans cet exemple, une relation 1-n entre PARENT et CHILD, et la sauvegarde en une fois de tous ces éléments, avec gestion automatique de la foreign key, sans avoir à écrire child.parentId = parent.Id.

Pour pouvoir faire cela, il faut implémenter la relation comme sur cet article: https://learn.microsoft.com/fr-fr/ef/core/modeling/relationships

public class Parent
{
    public int Id { get; set; }
    public string Name { get; set; }

    public ICollection<Child> Children { get; }
}

public class Child
{
    public int Id { get; set; }
    public string Name { get; set; }

    public int ParentId { get; set; }
    public Parent Parent { get; set; }
}

Et le DBContext:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Parent>()
        .HasMany(e => e.Children)
        .WithOne(e => e.Parent)
        .HasForeignKey(e => e.ParentId)
        .HasPrincipalKey(e => e.Id);
}

La souplesse du framework me permet de surcharger les class partial Parent et Child pour ajouter les propriétés qui m'intéressent, et d'utiliser OnModelCreatingPartial pour ajouter mes modifications voulues. Merci pour cela.

Est-ce que c'est possible d'ajouter cette gestion des clés étrangères directement dans TopModel sil-vous-plaît ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant