Сохранить выбранные значения флажков в столбце базы данных - PullRequest
1 голос
/ 01 июля 2019

Мне нужно сохранить строковые значения из нескольких флажков в базе данных через вызов API. Как правильно смоделировать это в моей модели базы данных так, чтобы я мог сохранить строковые значения в один столбец в моей таблице базы данных. Я использую ASP.NET MVC, я использовал vue.js во внешнем интерфейсе.

Я хочу передать массив строк, представляющих значения из нескольких флажков, в конечную точку API. Я представляю это как список строк в моей модели базы данных, а также хочу сохранить список строковых значений в виде строки в столбце моей таблицы. (Примечание: не уверен, что это хороший подход, так как мне нужно будет получить этот список позже из базы данных).

 public class TempAccountOpeningRequest
    {
        [Key]
        public int Id { get; set; }

        [Required(ErrorMessage = "First Name is required")]
        [JsonProperty("first_name")]
        public string FirstName { get; set; }

        [Required(ErrorMessage = "Last Name is required")]
        [JsonProperty("last_name")]
        public string LastName { get; set; }      

        [JsonProperty("typesSelected")]
        public List<string> TypesSelected { get; set; }

    }

Я хочу иметь возможность передавать значения из нескольких флажков в API, а затем API сохраняет данные в таблицу базы данных

1 Ответ

0 голосов
/ 01 июля 2019

Вы можете сохранить его в одном столбце с запятой отдельно:

Измените свою модель на:

public class TempAccountOpeningRequest
{
    ...
    [JsonProperty("typesSelected")]
    public string TypesSelected { get; set; }
}

Ваш SaveDTO может быть таким: (TypesSelected отправит из vue.js в виде массива)

public class SaveTempAccountOpeningRequestDTO
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public List<string> TypesSelected { get; set; }
}

И ваш API получает данные, а затем преобразует их в массив и сохраняет в базе данных:

public bool Save(SaveTempAccountOpeningRequestDTO dto)
{
    ...
    string joinedTypesSelected = string.Join(',', dto.TypesSelected);
    ...
}

Конечно, когда вы получаете свои данные, вы должны изменить их на следующий список:

yourResult.Select(x=>x.TypesSelected.Split(',')).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...