.NET Api создает API вставки POST для объекта с отношением «многие ко многим» - PullRequest
0 голосов
/ 26 мая 2019

У меня есть модель под названием Грузовики и Модель под названием Категории. Между двумя моделями существует много-много взаимосвязей. Я создал таблицу под названием TruckCategory, чтобы сопоставить отношения «многие ко многим». Я пытаюсь создать API, который будет вставлять новый грузовик с едой со своими категориями. Как мне это сделать в таком случае?

public class Truck
{
    public int TruckId { get; set; }
    public string Title { get; set; }
    public int Price { get; set; }
    [Range(1, 5)]
    public decimal Rating { get; set; }
    public string Hours { get; set; }
    public string Phone { get; set; }
    public Coordinates Coordinates { get; set; }
    public Address Location { get; set; }


    public virtual ICollection<TruckCategory> TruckCategory { get; set; }
} 

1 Ответ

0 голосов
/ 27 мая 2019

Если вы используете visual studio, создайте класс Api Controller как этот

public class PostingApiController : ApiController
{
    public string CreateTruckCategory(TruckAndCategory model)
    {
        try
        {
            using (var db = new YourEntity())
            {
                //extract the truck model           
                Truck truck = new Truck
                {
                    //assign variables example
                    Title = model.Truck.Title;
                };
                //save truck data to db
                db.Truck.Add(truck);
                db.SaveChanges();
                //keep track of the truck id if it is auto increment
                var truckId = truck.TruckId;

                //also in the same way extract and save the category model keeping track of the ID,
                var categoryId = category.Id;

                //the save the link table with both IDs
                TruckCategory truckCategory = new TruckCategory
                {
                    CategoryId = categoryId;
                    TruckId = truckId;
                };
                //then save this link table
                db.TruckCategory.Add(truckCategory);
                db.SaveChanges();
            }

            return "success";
        }
        catch (Exception e)
        {
            return "failure";
        }
    }
}

где у вас есть модель как

public class TruckAndCategory{
    //class declaration here
    public Truck truck {get; set;}
    public Category category {get; set;}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...