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
です。
深い挿入を実行する必要があり、操作は次の順序で行う必要があります。
- 最初に挿入する必要があります。注文行を挿入する前に。
- 注文ラインの
OrderId
を設定する必要があります。 - 注文行を挿入する必要があります。
EFまたはOdata V4はディープインサートをサポートしていますか? これをどうすれば実現できますか?