UbuntuCore
UbuntuCore

Reputation: 417

EF Core - Added element of relation isnt being saved by EF

I have problem with adding new object's to collection inside user class (relation) one-to-many, one user can have many items

But for some reason context is not saving it properly inside User.

Result of this code:

Upvotes: 0

Views: 62

Answers (1)

james
james

Reputation: 743

Your Item class is wrong, you need this :

public class Item
{
    [Key]
    public Guid Id { get; set; }

    public string ItemName { get; set; }

    // Relation to User
    public Guid UserId { get; set; }
    public virtual User User { get; set; }

    protected Item()
    {    }

    public Item(string name, User user)
    {
        Id = Guid.NewGuid();
        UserId = user.Id;
        ItemName = name;
    }
}

And the register method :

public IActionResult register([FromBody]Register command)
{
    var newUser = new User(command.login, password);
    var newItem = new Item("TEST", newUser);

    newUser.Items.Add(newItem);
    _context.UsersTable.Add(newUser);
    _context.ItemsTable.Add(newItem); // Edit : I'm not sure, but try it without this line, it should work
    _context.SaveChanges();
}

Upvotes: 1

Related Questions