【发布时间】:2019-08-07 01:55:45
【问题描述】:
我第一次尝试在 EF 中使用控制器类,所有代码都是为 web api 自动生成的。
所以我有一个具有一些属性的对象,它还有另一个对象。我希望能够插入嵌套对象,但它没有被添加......只有主对象。我调试了 Post Api,我可以看到这些值,但它们没有被插入到它的表中。
这是我的课程
public class Inventory
{
public int InventoryID { get; set; }
public string Operator { get; set; }
public string Warehouse { get; set; }
public decimal Total { get; set; }
public DateTime Date { get; set; }
public Localization Localization { get; set; }
}
public class Localization
{
public int LocalizationID { get; set; }
public string Reference { get; set; }
public int TicketsToStore { get; set; }
public int TicketsStored { get; set; }
public bool IsValid { get; set; }
public decimal Precision { get; set; }
}
基本上清单是与本地化的一对多关系
这是生成的post api函数
// POST: api/Inventories
[ResponseType(typeof(Inventory))]
public IHttpActionResult PostInventory(Inventory inventory)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Inventories.Add(inventory);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = inventory.InventoryID }, inventory);
}
这是我的发帖请求
$("#btnAdd").click(function () {
debugger
var Inventory= {
"Operator": $("#Operator").val(),
"Warehouse": $("#Warehouse").val(),
"Total": $("#Total").val(),
"Date": $("#Date").val(),
};
var Localization = {
"Reference": $("#Reference").val(),
"TicketsToStore": $("#TicketsToStore").val(),
"TicketsStored": $("#TicketsStored").val(),
"IsValid": $("#IsValid").val(),
"Precision": $("#Precision").val()
}
Inventory.Localization = Localization;
$.ajax({
type: "POST",
url: 'api/inventaries',
data: JSON.stringify(Inventory),
contentType: "application/json;charset=utf-8",
success: function (data, status, xhr) {
alert("The result is : " + status + ": " + data);
},
error: function (xhr) {
alert(xhr.responseText);
}
});
});
我的问题是,我在这里做错了什么?
【问题讨论】:
-
是的,对不起,我修正了,没有错字,我只是把所有东西都翻译成英文
标签: c# asp.net entity-framework asp.net-web-api