¿Cómo crear un método de POST API web para las relaciones de ONT-AMAS? -- post campo con asp.net-web-api camp Relacionados El problema

How to create web API POST method for Ont-to-Many Relationships?


0
vote

problema

Español

Estoy creando API web para orden. en el que dos tablas he creado

1) tbl_order tiene columnas -

  Order_ID     -Primary Key, Employee_ID, TotalBill,   

2) tbl_ordermenu tiene columnas -

      $(document).ready(function() {     var fixHelper = function(e, ui) {         ui.children().each(function() {             $(this).width($(this).width());         });         return ui;     };      $("#sort tbody").sortable({         helper: fixHelper,         scroll: false,         update: function () {             var sorted = $( "#sort tbody" ).sortable( "serialize", { key: "id" } );             $.post(path+"/web_data/ajax/admin/ajax.savePositions.php",{ 'num': sorted});           }     }).disableSelection();  }); 0  

La relación entre las tablas es de uno a muchos, es uno de los tbl_order (1) -to-tbl_ordermenu (* o muchos).

¿Cómo puedo crear API web para publicar el método para crear datos al mismo tiempo?

Original en ingles

I am creating web API for Order. in which two tables I have created

1)Tbl_Order have columns-

Order_ID     -Primary Key, Employee_ID, TotalBill, 

2)Tbl_OrderMenu have columns-

OrderMenuID    -Primary Key, Order_ID       -Foreign Key from Tbl_Order, MenuName, Quantity 

the relationship between tables is one-to-many i.e. Tbl_Order(1)-to-Tbl_OrderMenu(* or Many).

How can I create Web API to POST method to create Data at the same time?

     

Lista de respuestas

0
 
vote
vote
La mejor respuesta
 

Véase, en este caso, primero debe agregar datos a tbl_order . Luego, puede agregar tantos datos a tbl_ordermenu tabla, tomando orden_id desde la primera tabla. Espero que entendieras esto.

Crear una clase que debe incluir tanto la tabla. Por ejemplo,

  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; } }   

En su método del controlador API, puede escribir así,

  [HttpPost] public HttpResponseMessage Post(myCombinedClass myData) {  if(myData.id == 0)   {     // This is a new entry to Tbl_Order.     Tbl_Order orderObject = new Tbl_Order();     orderObject.Employee_ID = myData.Employee_ID;     orderObject.TotalBill = myData.TotalBill;     _ctx.Tbl_Order.Add(orderObject);     _ctx.SaveChanges();   }  else   {    //You just need to update the Tbl_Order. I mean, here you are adding     //data to Tbl_OrderMenu table with  Order_ID.    var OrderMenuData = _ctx.Tbl_OrderMenu.where(m=>m.Order_ID ==                         myData.id).FirstOrDefault();     OrderMenuData.Order_ID = myData.id;         OrderMenuData.MenuName = myData.OrderMenu.MenuName;    OrderMenuData.Quantity = myData.OrderMenu.Quantity;    _ctx.Entry(OrderMenuData).State=System.Data.Entity.EntityState.Modified;    _ctx.SaveChanges();   } }   

note : vea aquí, _ctx es la clase de contexto, que necesita agregar en este controlador / método.

  Ex: MyDBContext _ctx = new MyDBContext();   

He escrito una respuesta igual a esta aquí . Pasar por eso Compruebe cómo estoy pasando los datos a la mesa en el método AJAX.

 

See, in this case, first you need to add data to Tbl_Order table. Then you can add as many data to Tbl_OrderMenu table, by taking Order_ID from the first table. Hope you understood this.

Create a class which should include both the table. For example,

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; } } 

In your API Controller method, you can write like this,

[HttpPost] public HttpResponseMessage Post(myCombinedClass myData) {  if(myData.id == 0)   {     // This is a new entry to Tbl_Order.     Tbl_Order orderObject = new Tbl_Order();     orderObject.Employee_ID = myData.Employee_ID;     orderObject.TotalBill = myData.TotalBill;     _ctx.Tbl_Order.Add(orderObject);     _ctx.SaveChanges();   }  else   {    //You just need to update the Tbl_Order. I mean, here you are adding     //data to Tbl_OrderMenu table with  Order_ID.    var OrderMenuData = _ctx.Tbl_OrderMenu.where(m=>m.Order_ID ==                         myData.id).FirstOrDefault();     OrderMenuData.Order_ID = myData.id;         OrderMenuData.MenuName = myData.OrderMenu.MenuName;    OrderMenuData.Quantity = myData.OrderMenu.Quantity;    _ctx.Entry(OrderMenuData).State=System.Data.Entity.EntityState.Modified;    _ctx.SaveChanges();   } } 

Note: See here, _ctx is the context class, that you need to add in this controller/method.

Ex: MyDBContext _ctx = new MyDBContext(); 

I have written an answer same like this here. Go through that. Check how I'm passing data to both the table in ajax method.

 
 
         
         

Relacionados problema

11  API web ASP.NET (REST): autenticación usando las credenciales de los usuarios o un token? Dejar "Registrar el nuevo usuario" ¿GRATIS de la contraseña de recursos?  ( Asp net web api rest authentication using the users credentials or a token l ) 
Estoy tratando de crear un servicio de descanso con ASP.NET WEB API y todo está funcionando bien, pero ahora he encontrado qué hacer con la autenticación. E...

1  BreezeJS restringiendo el acceso a las entidades  ( Breezejs restricting access to entities ) 
Recientemente comencé a investigar a Breezejs. Estoy trabajando en un sistema que será utilizado por varios clientes y no puedo exponer a otros datos a otros....

2  Desplegando el controlador de API web a la producción  ( Deploying web api controller to production ) 
Tengo una aplicación ASP.NET MVC en VS 2010. Añadí un nuevo controlador de API web a mi solicitud. Aquí está el método simple que estoy tratando de llamar: ...

1  Enviar cookie de autorización al llamar a Odata Service  ( Send authorization cookie when calling odata service ) 
Tengo 2 aplicaciones web. La primera aplicación web contiene páginas web de ASP.NET y utiliza un proveedor de miembros para la autenticación. La segunda apl...

0  Cómo descargar una matriz de bytes (byte []) de la API web (.NET) con JS angular  ( How download a byte array byte from web api net with angular js ) 
Estoy trabajando en una solución con SOA Architect, y tengo un problema convertir un archivo .zip en una matriz de bytes en la capa WS y descargar con una API...

0  En ASP.NET, estoy recibiendo el acceso de errores a la ruta '~ upload 1_myimage.png' es denegado?  ( In asp net i am getting error access to the path upload 1 myimage png is den ) 
He cargado mi sitio web en el servidor cuando intento guardar la imagen en la carpeta cargada llamada Subir, entonces da error line 114: { Línea 115: STR S...

4  Regrese el archivo de descarga en ASP.NET Core API de Axios Solicitud  ( Return download file in asp net core api from axios request ) 
GUY DAY GUYS, Estoy intentando descargar el archivo de ASP.NET Core Web API de Axios Solicitud. Aquí está mi método API de muestra. (Código basado en este...

75  ¿Cómo configurar JSOonserializersetters personalizados para JSON.NET en ASP.NET WEB API?  ( How to set custom jsonserializersettings for json net in asp net web api ) 
Entiendo que ASP.NET WEB API usa de forma nativa JSON.NET para (DE) Objetos serializados, pero ¿hay una manera de especificar un objeto FluentConfigurationEx...

0  ¿Cómo funciona la autenticación WEBAPI para todos los clientes? [cerrado]  ( How does webapi authentication works for all clients ) 
cerrado . Esta pregunta debe ser más enfocado . Actualmente no está aceptando respuestas. ...

0  Manejo de excepciones de API web en MVC con controlador  ( Handling web api exceptions at mvc with handler ) 
Tengo algunas preguntas sobre el manejo de excepciones en MVC 4. I había implementado HandleErrorAttribute y derivado un nuevo atributo para personalizar....




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos