1. Voici la structure de ma base de données (simpliste ..)
  2. Projet Serveur -> Rien ne change
  3. Projet Client
    1. Ajout des reférences dans mon projet "client"
    2. Ajouter une référence à l'assembly "client" de ADO.NET Data Services. Elle est disponible dans la GAC avec le nom "System.Data.Services.Client". Précédement, elle s'appelait "Microsoft.Data.WebClient".
    3. Génération des classes proxy
    4. datasvcutil.exe /uri:http://urlDeploy/WebDataService.svc /out:ExempleEntities.cs
    5. Code qui crée une Bill + 2 BillItem et enregistre tout en 1 seule transaction
    6. DataServiceContext data 
          = new DataServiceContext(new Uri(@"http://urlDeploy/WebDataService.svc/"));
      Bill bill = new Bill { Name = "Nom" };
      BillItem item1 = new BillItem { SubName = "Sub1" };
      bill.BillItem.Add(item1);
      BillItem item2 = new BillItem { SubName = "Sub2" };
      bill.BillItem.Add(item2);
      //Ajout des objets
      data.AddToBill(bill);
      data.AddToBillItem(item1);
      data.AddToBillItem(item2);
      // On crée un "lien" pour les ID de référence
      data.AddLink(item2, "Bill", bill);
      data.AddLink(item1, "Bill", bill);
      // On enregistre en mode "batch" ... L'id de "Bill" généré par la DB ne sera 
      // positionné correctement sur les enfants qu'en mode "Batch"
      data.SaveChanges(SaveChangesOptions.Batch);