J'utilise Odata v4 WebApi 2.2, Entity Framework 6 et le client proxy Odata v4 (WPF) dans un projet.Deep Insertion de données avec Asp.Net WebApi + EF + Odata
code suivant Tenir compte:
//Model Class
public class Order
{
public int OrderId {get;set;} //Auto Generated Id
public string OrderDescription {get;set;}
Public virtual IEnumerable<OrderLine> OrderLines;
}
//Model Class
public class OrderLine
{
public int OrderId {get;set;} //Auto Generated Id
public int OrderLineId {get;set;} //Key of the parent entity
public string PartDescription {get;set;}
Public virtual Order Order;
}
//Odata Proxy Client Code
public void insert()
{
Order order new Order;
order.OrderDescription = "Test Desc";
order.Add(new OrderLine{PartDescription = P100}) //OrderId & OrderLineId is null
order.Add(new OrderLine{PartDescription = P101})//OrderId & OrderLineId is null
order.Add(new OrderLine{PartDescription = P101})//OrderId & OrderLineId is null
//When save changes is called OrderId needs to be set to order lines
Context.SaveChanges();
}
Je dois créer Commander avec des lignes de commande du client et renvoyer à la base de données pour enregistrer. Le problème est que les clés sont générées automatiquement dans la base de données pour les classes Order
& OrderLine
.
Je dois effectuer une insertion profonde et l'opération doit être effectuée dans l'ordre suivant.
- L'ordre doit être inséré en premier. Avant d'insérer les lignes de commande. Les lignes
OrderId
des lignes de commande doivent être définies. - Les lignes de commande doivent être insérées.
EF ou Odata V4 prend-il en charge l'insertion profonde? Comment puis-je y parvenir?