Как изменить поле на основе того, что обновляется на чужой таблице? - PullRequest
0 голосов
/ 23 января 2020

Это моё действие по созданию в контроллере

 public IActionResult Create(Booking booking)
    {
        if (ModelState.IsValid)
        {

            DbSet<Booking> dbs = _dbContext.Booking;
            DbSet<Assets> dbs2 = _dbContext.Assets;
            //Trying to link the selected assetId from booking table to the id in asset table
            //I tried to set a variable "In Use" and then linking it to the status, but whenever i create it shows null reference
            dbs2.Where(a => a.Id == booking.Asset.Id);
            dbs.Add(booking);


            if (_dbContext.SaveChanges() == 1)
            {
                TempData["Msg"] = "New Booking Added";
            }
            else
            {
                TempData["Msg"] = "Failed to update database";
            }

        }
        else
        {
            TempData["Msg"] = "Invalid information entered";
        }
        return RedirectToAction("Index");
    }

Это моя модель для бронирования

public partial class Booking
{
    public Booking()
    {
        History = new HashSet<History>();
    }

    public int Id { get; set; }
    public int AssetId { get; set; }
    public int UserId { get; set; }
    public DateTime LoanDateStart { get; set; }
    public DateTime LoanDateEnd { get; set; }
    public string Description { get; set; }
    public bool IsDeleted { get; set; }

    public virtual Assets Asset { get; set; }
    public virtual AppUser User { get; set; }
    public virtual ICollection<History> History { get; set; }
}

А это моя модель для активов

public partial class Assets
{
    public Assets()
    {
        Booking = new HashSet<Booking>();
    }

    public int Id { get; set; }
    public string Model { get; set; }
    public string Description { get; set; }
    public string Barcode { get; set; }
    public string Brand { get; set; }
    public string AssetType { get; set; }
    public string Status { get; set; }
    public string Condition { get; set; }
    public bool IsDeleted { get; set; }

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

Итак, как я могу гарантировать, что всякий раз, когда я создаю бронирование на основе доступных активов, я хочу обновить статус «Используется» в таблице активов?

Я пробовал довольно много способов, но я все еще не понимаю, как обновить отдельное поле после создания бронирования.

Так что в приложении это должно работать так же, как и при создании бронирования, статус на странице индекса моих активов должен отображаться "В Используйте "вместо" Доступно "

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