【问题标题】:Web API POST method for Tables with Relationship具有关系的表的 Web API POST 方法
【发布时间】:2017-03-20 13:45:41
【问题描述】:

我是 Web API 的新手。 我正在为 Order 创建 Web API POST 方法。我在其中创建了两个表 1)Tbl_Order 有列- Order_ID -Primary Key, Employee_ID, TotalBill,

2)Tbl_OrderMenu 有列-OrderMenuID -Primary Key, Order_ID -Foreign Key from Tbl_Order, MenuName, Quantity

表之间的关系是一对多的,即 Tbl_Order(1)-to-Tbl_OrderMenu(* 或 Many)。

如何创建 Web API 到 POST 方法以同时创建数据?

public class myCombinedClass
{
 public int Order_ID {get;set;}
 public int Employee_ID {get;set;}
 public string TotalBill {get;set;}
 public List<Tbl_OrderMenu> OrderMenu { get; set; }
}

我的 API POST 控制器是

public HttpResponseMessage Post(myCombinedClass myData)
{
 if(myData.id == 0)
  {
    // This is a new entry to Tbl_Order.
  }
 else
  {
   //You just need to update the Tbl_Order. I mean, here you are adding 
   //data to Tbl_OrderMenu table with  Order_ID.
  }
}

POST 方法会带来什么。

【问题讨论】:

  • 嗯?没有魔法巫毒。一旦你(成功)得到 myCombinedClass “跨线”并进入方法“(在这种情况下为“Post”)......你必须对它做点什么。要么使用 Entity-Framework 或 Ado.Net 或其他东西来获得它进入数据库(我想这就是你的意思)

标签: post asp.net-web-api


【解决方案1】:

@manish,这里是使用 EF 的 POST 方法示例:

// POST: api/myCombinedClasses
[ResponseType(typeof(myCombinedClass))]
public async Task<IHttpActionResult> PostmyCombinedClass(myCombinedClass mycombinedclass)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    db.myCombinedClasses.Add(mycombinedclass);
    db.OrderMenus.AddRange(mycombinedclass.OrderMenu);
    await db.SaveChangesAsync();

    return CreatedAtRoute("DefaultApi", new { id = mycombinedclass.Order_ID }, mycombinedclass);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 2018-09-21
    • 1970-01-01
    • 2015-10-07
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多