The UserMovement class is:
[Table("UserMovements")]
public class UserMovement
{
public UserMovement() { }
public UserMovement(UserReference user) { Number = user.Number; }
public UserMovement(int number) { Number = number; }
[Column("id")]
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; }
[Column("Login", TypeName = "datetime")]
public DateTime Login { get; set; }
[Column("Logout", TypeName = "datetime")]
public DateTime Logout { get; set; }
[Column("Number")]
public int Number { get; set; }
}
The User class is a similar class, but with more user details. The UserReference class is just a placeholder for the User class and contains only one member: Number which is the reference to the User record in the database. It has implicit conversion operators so it can be used in place of the User class or an integer.
So why VA would suggest a "new User" when the "Login" member is of type DateTime, no idea.