0

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.

  1. 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.
  2. 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?

Répondre