2009-08-27 5 views
4

Je regardais cette question SO: ADO.net Entity Framework: Update only certian properties on a detached entity. C'était une grande aide pour moi. Je sais maintenant que je dois attacher une entité avant de faire mes changements. Mais comment puis-je faire ceci:EntityFramework .net 4 Mettre à jour l'entité avec une méthode simple

J'ai un site Web MVC, une page de mise à jour de client avec des champs: ID, nom, adresse, etc. Mon MVC est en train d'analyser cela dans une entité client. Comment faire ce qui suit:

  • Mettez à jour mon entité et enregistrez les modifications.
  • Attrape l'exception si mes modifications ont été effectuées depuis que j'ai chargé mon entité.

Répondre

3

Essayez quelque chose comme ça (code de pseudo, je pourrais avoir misremembered certains noms de méthode):

public void Update(Customer entity) 
{ 

    using (MyContext ctx = new MyContext()) 
    { 
     // Create a stub entity and attach it 
     Customer db = new Customer {ID = entity.ID}; 
     ctx.Customers.Attach(db); // ctx.AttachTo("Customers", db) in 3.5 sp1 

     // ApplyPropertyChanges in 3.5 Sp1 
     ctx.ApplyCurrentValues(entity); 
     ctx.SaveChanges(); 
    } 
    ... 
} 

Ce code utilise l'astuce Stub Entity. Vous pouvez si vous avez des relations besoin de dire à EF plus sur l'entité d'origine, consultez l'article de blog ci-dessus pour plus parce que vous pouvez le faire en utilisant des stubs aussi.

Alternativement, si vous ne se soucient pas du tout de concurrency vous pouvez simplement faire ceci:

public void Update(Customer entity) 
{ 
    using (MyContext ctx = new MyContext()) 
    { 
     // pull the entity from the database 
     Customer db = ctx.Customers.First(c => c.ID == entity.ID); 

     // ApplyPropertyChanges in 3.5 Sp1 
     ctx.ApplyCurrentValues(entity); 
     ctx.SaveChanges(); 
    } 
} 

Hope this helps

Alex James

Entity Framework Tips

+0

'applyCurrentValues ​​()' la méthode n'existe pas pour moi. –

+0

@Alex James: Merci pour les liens vers Stub Entity et Entity Framework Tips. Ce sont de bons trucs à savoir. – muruge

Questions connexes