Amazingly(maybe not), the problem was in the BLL:
public List<user> GetSalt(User user)
{
return UserDb.GetSalt(user);
}</user>
at the top of the class I had defined UserDb as:
UserDAL UserDb;
and it wanted:
UserDAL UserDb = new UserDAL();
If anyone could tell me what the difference is it would be nice to know.
Thanks