Hello @bobkhan khan ,
Rather than thinking in terms of "a class" first model what is needed in a database, seed the database with realistic data followed by determining if you can get back data as you would expect. All of this should be done in a database editor e.g. SSMS (SQL-Server Management Studio) for SQL-Server, MS-Access use the tools in the database, Oracle SQL Developer or Toad etc.
Next consider how you will interact with the data, this might be a managed data provider, Entity Framework 6 or Entity Framework Core.
Decide on a project type (there are several types to choice from in Visual Studio dependent on the version of Visual Studio). Once this is done if using Entity Framework reverse engineer the database using EF Power Tools (free).
In regards to
- Validating email address, there is no one correct way, look around the web, try a few out. Note that with classes generated by Entity Framework one option is to use data annotations to validate an email but it's not perfect.
- Changing password/resetting passwords, best to look around as there is no one all encompassing method. If this is a commercial app a consideration may be to use Azure on prem (cost less then on the web but takes time to properly setup)
Don't get hung up on things such as working with contact details interacting in the user interface, instead if you are new to this type of development, start out small in a test project and work through the basics, moving to where you need to be with the user interface.
My assumption is you are new to this type of development so don't rush, take you time and handle small chunks of coding at a time. Look at setting up a DevOps account and create a project, write out your requirements in stories, task and test along with using the repository to store code.
In closing, if you get stuck with something either ask here, MSDN C# forum or StackOverflow and be clear to what you are having problems with.