It's probably because this line
foreach (var users in db.Users)
opens a connection and this line
var user = db.Users.Select(
sets up a second connection which is activated when you use .ToList on the following line.
You don't actually need the two loops, this is untested but try something like
public List<DataModel> GET()
{
var user = db.Users.Select(x => new DataModel()
{
Email = x.Email,
UserName = x.UserName,
FirstName = x.FirstName,
LastName = x.LastName,
Age = x.Age,
Phone = x.Phone,
Department = x.Department
});
return user.ToList();
}