0

プロジェクトでOdata v4 WebApi 2.2、Entity Framework 6およびOdata v4プロキシクライアント(WPF) を使用しています。Asp.Net WebApi + EF + Odataで深いInsertindデータ

はコード次の点を考慮

//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(); 
} 

が、私はクライアントからの注文ラインで注文を作成して保存するためにデータベースに戻って送信する必要があります。問題は、クラスのキーでデータベースにキーが自動的に生成されますOrder & OrderLineです。

深い挿入を実行する必要があり、操作は次の順序で行う必要があります。

  1. 最初に挿入する必要があります。注文行を挿入する前に。
  2. 注文ラインのOrderIdを設定する必要があります。
  3. 注文行を挿入する必要があります。

EFまたはOdata V4はディープインサートをサポートしていますか? これをどうすれば実現できますか?

答えて

関連する問題