我有这个控制器我有Post方法..但是这个方法没有在数据库中插入值..我无法解决这个问题..需要帮助
public HttpResponseMessage Post([FromBody]product pro)
{
try
{
using (project_smartEntities entities = new project_smartEntities())
{
entities.products.Add(pro);
entities.SaveChanges();
var message = Request.CreateResponse(HttpStatusCode.Created, pro);
message.Headers.Location = new Uri(Request.RequestUri + pro.product_id.ToString());
return message;
}
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
}
}
主机:localhost:52442 User-Agent:Mozilla / 5.0(Windows NT 10.0; WOW64; rv:53.0)Gecko / 20100101 Firefox / 53.0接受:application / json Accept-Language:en-US,en; q = 0.5 Accept-Encoding:gzip,deflate 连接:keep-alive升级 - 不安全请求:1内容类型: 应用/ JSON
我想在产品表中插入这些值
{ “PRODUCT_NAME”:玛利亚 B “ ”条形码“ 123456789 ”expiry_dates“: ”2022-05-12T00:00:00“, ”单位“: ”3PC“, ”税“:500.0, ”成本“:8000.0, ”大小“:”介质”, “数量”:2 “CATEGORY_ID”:7, “位置”:[], “PRODUCT_CATEGORY”:NULL, “purchase_line”:[], “sales_line”:[]}
答案 0 :(得分:0)
如果entities.SaveChanges();
失败,您可以检查Db中的产品表是否存在任何限制。
答案 1 :(得分:0)
您应该重构最近的web api 2
的api抽象public IHttpActionResult Post([FromBody]product pro) {
try {
using (var entities = new project_smartEntities()) {
entities.products.Add(pro);
entities.SaveChanges();
return CreatedAtRoute(
routeName: "DefaultApi",
routeValues: new { id = pro.product_id, controller = "products" }, //assuming route template "api/{controller}/{id}" other properties
content: pro);
}
} catch (Exception ex) {
return BadRequest();
}
}
由于没有属性路由的迹象,假设您使用的是默认的基于约定的路由DefaultApi
调试实体未保存的原因在异常处理程序中放置一个断点并查看异常的原因。