Как передать значения в DataAccess Layer для хранения в базе данных в asp.net MVC5 API? - PullRequest
0 голосов
/ 12 октября 2018

В моем приложении API я выставляю значения, поступающие из представления регистрации, которые я хочу сохранить в базе данных.В AccountController.cs я собрал эти значения, используя следующий код.

[Route("Register")]
    public async Task<object> Register(UserDetails data)
    {
        var userRegister = new IdentityUser
        {
            FirstName = data.FirstName,
            LastName = data.LastName,
            UserName = data.Email,
            Email = data.Email,
            PhoneNumber = data.PhoneNumber,
            PasswordHash = data.Password
        };


        UserManager<IdentityUser> _manager = new UserManager<IdentityUser>(new UserStore<IdentityUser>(new TachusApi.DBContext.AuthDbContext()));
        string pHash = _manager.PasswordHasher.HashPassword(data.Password);

        DBAccess dbaccess = new DBAccess();

        dbaccess.SaveAdmin(userRegister, pHash);

        return data;
    }

Я хочу передать эти значения методу SaveAdmin в DBAccess.cs для хранения в базе данных.Вот мой метод SaveAdmin:

#region Save Admin User

    public void SaveAdmin(string userRegister, string hash)
    {
        SqlConnection conn = null;
        SqlCommand command = null;
        int retValue;

        conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
        conn.Open();

        command = conn.CreateCommand();
        command.CommandText = "RequestedServiceUserDataInsert";
        command.CommandType = CommandType.StoredProcedure;


        ...

    }

    #endregion

Я не могу передать действительный формат значений в мой метод SaveAdmin, где я могу сохранить их в базе данных.Есть ли кто-нибудь, кто может посоветовать эффективный способ, который может помочь мне передать эти значения как объект для использования их в моем методе сохранения?Пожалуйста, совет

1 Ответ

0 голосов
/ 12 октября 2018

Поскольку вы определяете объект userRegister как объект IdentityUser

    var userRegister = new IdentityUser
    {
        FirstName = data.FirstName,
        LastName = data.LastName,
        UserName = data.Email,
        Email = data.Email,
        PhoneNumber = data.PhoneNumber,
        PasswordHash = data.Password
    };

и затем передаете его в функцию SaveAdmin вашего класса dbaccess

    dbaccess.SaveAdmin(userRegister, pHash);

Метод SaveAdmin долженбыть настроен на прием userRegister типа IdentityUser.Сейчас он ожидает простую строку.

Итак, вместо того, чтобы ваша SaveAdmin функция была объявлена ​​так:

public void SaveAdmin(string userRegister, string hash)

Вы должны объявить ее так:

public void SaveAdmin(IdentityUser userRegister, string hash)

Таким образом, метод получает ожидаемые данные, и вы можете получить доступ ко всем свойствам этого объекта и вставить их в сервер SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...