首页 > 解决方案 > 复制数据库中的 2 列

问题描述

我正在努力将数据从一列复制到下一列。我想foodId和我MenuItemId一样。有没有办法在控制器中添加代码以使两列具有相同的值?这是它目前的样子:

FoodId   | MenuItemId | Rating
---------+------------+------
1        | NULL       |   5
1        | NULL       |   4
2        | NULL       |   5
1        | NULL       |   5

我希望我的最终结果看起来像这样:

FoodId   | MenuItemId | Rating
---------+------------+------
  1      |     1      |   5
  1      |     1      |   4
  2      |     2      |   5
  1      |     1      |   5

这是我的控制器:

public IActionResult Create()
{
    var listOfNumbers = new List<int>() { 1, 2, 3, 4, 5 };
    var listOfRatings = listOfNumbers.Select(x => new { Id = x, Value = x.ToString() });

    ViewData["Rating"] = new SelectList(listOfRatings, "Id", "Value");
    ViewData["FoodId"] = new SelectList(_context.MenuItems, "Id", "Name");

    return View();
}
    
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Title,FoodReview,Rating,Date,FoodId,MenuItemId,UserId")] Reviews reviews)
{
    if (ModelState.IsValid)
    {
        var userId = _userManager.GetUserId(HttpContext.User);

        reviews.UserId = userId;
        reviews.Date = DateTime.Now;

        _context.Add(reviews);

        await _context.SaveChangesAsync();

        return RedirectToAction("Index");
    }

    var listOfNumbers = new List<int>() { 1, 2, 3, 4, 5 };
    var listOfRatings = listOfNumbers.Select(x => new { Id = x, Value = x.ToString() });

    ViewData["Rating"] = new SelectList(listOfRatings, "Id", "Value", reviews.Rating);
    ViewData["FoodId"] = new SelectList(_context.MenuItems, "Id", "Name", reviews.FoodId);

    return View(reviews);
}

标签: c#asp.net-core-mvclocaldb

解决方案


您可以使用 getter setter 链接这些属性

public class Review
{
public int Id {get; set;}

,,,,, another properties

public int MenuItemId
{
get {return FoodId}
set { FoodId=value}
}

public int FoodId {get; set;}

}

或者相反,你更喜欢什么


推荐阅读