Вставить список объектов в базу данных? - PullRequest
0 голосов
/ 27 сентября 2019

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

Ниже приведен класс моделей для ингредиентов.( RecipeIngredient.cs )

public class RecipeIngredient
{
    public int id { get; set; }
    public int recipeId { get; set; }
    public string displayName { get; set; }
    public float amount { get; set; }
    public int recipeIngredientUnitId { get; set; }
    public int productId { get; set; }
    public int displayOrder { get; set; }
    public string ingredientGroup { get; set; }
    public int virtualProductId { get; set; }


    public RecipeIngredient(int id, int recipeId, string displayName, float amount, int recipeIngredientUnitId, int productId, int displayOrder, string ingredientGroup, int virtualProductId)
    {
        this.id = id;
        this.recipeId = recipeId;
        this.displayName = displayName;
        this.amount = amount;
        this.recipeIngredientUnitId = recipeIngredientUnitId;
        this.productId = productId;
        this.displayOrder = displayOrder;
        this.ingredientGroup = ingredientGroup;
        this.virtualProductId = virtualProductId;

    }

И это RecipeIngredientController.cs

 [Route("v1/recipeIngredient")]
 [HttpPost()]
 public IActionResult AddIngredient([FromBody]RecipeIngredient ingredient)
 {
      var productId = 1;
      var displayOrder = 1;
      var virtualProductId = 1;
      var ingredientGroup = "TBA";
      try
      {
          if (ingredient == null) throw new ArgumentException("No data specified");

          using (var con = _connFactory())
          {
              con.Open();
              con.Execute("INSERT INTO dbo.RecipeIngredient (Id, RecipeId, DisplayName, Amount, RecipeIngredientUnitId, ProductId, DisplayOrder, IngredientGroup, VirtualProductId) " +
                            "VALUES ((SELECT MAX(ID) + 1 FROM dbo.RecipeIngredient), @recipeId, @displayName, @amount, @recipeIngredientUnitId, @productId, @displayOrder, @ingredientGroup, @virtualProductId)",
                          new
                          {
                              //ingredient.id,
                              ingredient.recipeId,
                              ingredient.displayName,
                              ingredient.amount,
                              ingredient.recipeIngredientUnitId,
                              productId,
                              displayOrder,
                              ingredientGroup,
                              virtualProductId
                          });
          }
          return Ok(ingredient);
      }
      catch (Exception exc)
      {
          return BadRequest();
      }
  }

Как изменить класс модели /(повторно) написать мой метод POST, чтобы иметь возможность добавлять несколько объектов RecipeIngredient одновременно в базу данных?

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