【发布时间】:2020-10-16 01:21:42
【问题描述】:
我正在尝试更新两个表中的数据; products 和 inventory。表products的主键是cod_prod,是一个产品的条形码。这是与products 表和其他表的关系。对所有字段进行了更新,但是在数据库管理员中,inventory表中的cod_prod字段没有更新,它只变成null,在products表中进行了更新, reg_date 字段,它是inventory 表中的一个字段,也会更新。只有inventory 表上的cod_prod 字段没有更新,我不知道为什么。
视图模型:
public class products
{
[Display(Name = "Name")]
public string name { get; set; }
[Key]
[Display(Name = "Product Code")]
public string cod_prod { get; set; }
[Display(Name = "Register Date")]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime? reg_date { get; set; }
}
控制器:
[HttpGet]
public ActionResult prodEdit(int id)
{
using (inventarioEntitiesDBA dc = new inventarioEntitiesDBA())
{
var u = dc.products.Where(a => a.id == id).FirstOrDefault();
if (u != null)
{
var pm = new products
{
name = u.name,
cod_prod = u.cod_prod,
reg_date = u.reg_date
};
var b = dc.inventory.Where(x => x.cod_prod == pm.cod_prod).FirstOrDefault();
u.cod_prod = b.cod_prod;
return View(u);
}
return Content("Invalid Request");
}
}
[HttpPost]
public ActionResult prodEdit(products prod)
{
using (inventarioEntitiesDBA dc = new inventarioEntitiesDBA())
{
var u = dc.products.Where(a => a.id == prod.id).FirstOrDefault();
var b = dc.inventory.Where(x => x.cod_prod == prod.cod_prod).FirstOrDefault();
inventory bod = new inventory()
{
cod_prod = prod.cod_prod,
reg_date = prod.reg_date
};
dc.inventory.Remove(b);
dc.inventory.Add(bod);
dc.products.Remove(u);
dc.products.Add(prod);
dc.SaveChanges();
return RedirectToAction("prodList", "products");
}
}
欢迎提出任何建议。
更新:
products 的型号:
public partial class products
{
[Display(Name = "Name")]
public string name { get; set; }
[Key]
[Display(Name = "Product Code")]
public string cod_prod { get; set; }
}
inventory 的型号:
public partial class inventory
{
[Key]
[Display(Name = "Product Code")]
public string cod_prod { get; set; }
[Display(Name = "Register Date")]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime? reg_date { get; set; }
}
【问题讨论】:
-
请展示你的模特。
-
我用两个表的模型更新了问题。再次感谢任何建议。
-
在
POST动作上下断点,看看cod_prod是否为空。
标签: c# asp.net-mvc entity-framework razor