【问题标题】:Duplicating 2 columns in a database复制数据库中的 2 列
【发布时间】:2021-10-09 16:02:51
【问题描述】:

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

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);
}

【问题讨论】:

  • 为什么其他列也需要相同的数据?
  • 这是一个来不及修复的错误,但是,在另一列中使用相同的数据将解决问题。
  • 添加行reviews.MenuItemId = reviews.FoodId
  • 这会在 Post Create 方法下进行吗?
  • 是的,在此行下方是reviews.UserId……

标签: c# asp.net-core-mvc localdb


【解决方案1】:

您可以使用 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;}

}

或者相反,你更喜欢什么

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    相关资源
    最近更新 更多