【发布时间】:2015-05-13 20:58:56
【问题描述】:
我在 Web API ASP.NET 中有一个接受单个 Json 对象的 post 方法。这是带有代码的代码,用于检查来自发布 Json 的数据是否存在于我的数据库中。我将使用 Linq 与我的数据库进行交互。 Sales_ 是在我的上下文中自动生成的,我相信来自 EntityFramework。 db 是我的数据库对象。
public HttpResponseMessage PostSales(Sales Sales, [FromUri] string auth)
{
try
{
if (ModelState.IsValid)
{
if (auth == "KDI")
{
Int64 rs = db.Sales_.Where(sl => sl.Serial == Sales.Serial).Count();
if (rs == 1)
{
return Request.CreateErrorResponse(HttpStatusCode.Conflict, " Duplicate Found!");
}
else
{
db.Sales_.Add(Sales);
db.SaveChanges();
return Request.CreateErrorResponse(HttpStatusCode.OK, "Added!");
}
//Closing elses cut out for this question.
这工作正常,它接受我的 Json 罚款作为单个对象。
这是我将发布的 Json。
{
"Serial": 1,
"ExtSerial": "AH0000002",
"Date": "2015-03-01",
"CustomerRefNbr": "JPM0001",
"Description": "2015 FEBRUARY RENTAL 2015 FEBRUARY RENTAL",
"Customer": "TRDE0065",
"Amount": 17989.51,
"AQ_Branch": "KDI",
"AQ_COA": "4100503000",
"LineSubAccount": "OPMOPN000",
"LineTaxCategory": "JPMTAX",
"LineQuantity": 1,
"LineUnitPrice": 400000,
"AQ_PostStatus": 1,
"AQ_StatusDate": "2015-03-01",
"DTS": "2015-03-01",
"LineDescription": "Line Description"
}
现在,我想在一个 json 对象中发布多个列表或行(不知道如何称呼它们)。像这样的:
{
"ExtSerial": "AH0000002",
"Date": "2015-03-01",
"CustomerRefNbr": "JPM0001",
"Description": "2015 FEBRUARY RENTAL 2015 FEBRUARY RENTAL",
"Customer": "TRDE0065",
"Amount": 17989.51,
"AQ_Branch": "KDI",
"AQ_COA": "4100503000",
"LineSubAccount": "OPMOPN000",
"LineTaxCategory": "JPMTAX",
"LineQuantity": 1,
"LineUnitPrice": 400000,
"AQ_PostStatus": 1,
"AQ_StatusDate": "2015-03-01",
"DTS": "2015-03-01",
"LineDescription": "Line Description"
},{
"ExtSerial": "AH0000003",
"Date": "2015-04-01",
"CustomerRefNbr": "JPM0002",
"Description": "2015 FEBRUARY RENTAL 2015 FEBRUARY RENTAL",
"Customer": "TRDE0066",
" Amount": 17989.51,
"AQ_Branch": "KDI",
"AQ_COA": "4100503000",
"LineSubAccount": "OPMOPN000",
"LineTaxCategory": "JPMTAX",
"LineQuantity": 2,
"LineUnitPrice": 400000,
"AQ_PostStatus": 1,
"AQ_StatusDate": "2015-04-01",
"DTS": "2015-04-01",
"LineDescription": "Line Description"
}
但不确定在我的 post 方法中会如何阅读。我尝试将参数 Sales 更改为 List<Sales> Sales。我认为这是用于对象中的列表的内容,但我的问题是我的 db.Sales_.Add(Sales); 现在正在产生错误。 (无效参数)不确定如何将 .Add() 与列表一起使用。另外,我无法获取我的销售表列序列的数据,如Int64 rs = db.Sales_.Where(sl => sl.Serial == Sales.Serial).Count();所示
我几乎被卡住了,不知道该怎么做。我希望你不要觉得我的问题很愚蠢。我只是需要你的帮助。我知道这是一个简单的解决方法。
【问题讨论】:
标签: c# json linq entity-framework asp.net-web-api