Voici une solution pour arriver à utiliser les entités en mode "détaché".
  • Gestion du versonning des tuples
  • Il est indispensable d'avoir un système de versionning de tuple pour vérifier que l'objet a des modifications // aux données en base de données. Il suffit d'ajouter un champ "timestamp" en DB et de positionner les options comme ci-dessous.
  • Méthode Detach sur l'entité
  • Bizarrement, cette méthode n'existe plus (elle était disponible dans certaines bêta :/) dans le code généré. Il est cependant possible de l'implémenter à la main.
    public partial class Bill
    {
    public void Detach()
    {
    this.PropertyChanged = null;
    this.PropertyChanging = null;
    this.BillItems = default(EntitySet);
    }
    }

  • Exemple
  • TestDataContext context = new TestDataContext();
    Bill cust = context.Bills.Single(c => c.Id == 1);
    context = null;
    cust.Name = DateTime.Now.ToShortTimeString();
    cust.Detach();
    TestDataContext context2 = new TestDataContext();
    context2.Bills.Attach(cust, true);
    context2.SubmitChanges();
Quid de Entity Framework ?
Je vous conseille ce lien pour répondre à une partie de cette question.