2013-01-21 5 views
0

J'ai une entité que je veux mettre à jour sans mettre à jour son entité List of MANY. Im en utilisant le code-Première Mais je ne peux pas le faire fonctionner ... Im en utilisant Ninject et tout fonctionne, sauf ma mise à jour ...One-To-Many Entity Framework 5 Mise à jour avec le code en premier

// Entités

public class A 
{ 
public int AId { get; set; } 
public string Name { get; set; } 
} 


public class B 
{ 
public int BId { get; set; } 
public string Name { get; set; } 
public virtual List<A>ListOfAs { get; set; } 
} 

// Interface

private EFDbContext context = new EFDbContext(); 

public IQueryable<B> Bs 
     { 
      get { return context.B; } 
     } 

     public void SaveBs(B b) 
    { 
     if (b.Id== 0) 
     { 
      context.B.Add(b); 
      context.SaveChanges(); 
     } 

     *//here i wanna call: 
     context.Entity(b).State = EntityState.Modified; 
     BUT VS dont let me... I probably missing something out...* 

     context.SaveChanges(); 

La méthode Save fonctionne lorsque je veux simplement ajouter un nouvel objet à ma base de données. Mais la mise à jour changer quoi que ce soit ... wont

J'appricate si quelqu'un pouvait me dire ce que im manquer ...

/Thx J

Répondre

0
if (b.Id== 0) 
    { 
     context.B.Add(b); 
    } 
else 
    { 
     context.B.Attach(b); 
    } 
    context.SaveChanges(); 
+0

pas qui ne fonctionne pas ... toujours pas de mise à jour. Merci pour votre réponse rapide. – JeppePepp

+0

Je récupère l'objet mis à jour, mais les mises à jour ne passent pas dans ma base de données. L'entité ne peut pas enregistrer les modifications ... – JeppePepp

+0

y a-t-il des exceptions? – daryal

2

les critères suivants, Ce travail moi

public BuyerInformation Update(BuyerInformation objBuyerInformation) 
    { 
     context.BuyerInformation.Attach(objBuyerInformation); 
     context.Entry(objBuyerInformation).State = EntityState.Modified; 
     context.SaveChanges(); 

     return objBuyerInformation; 
    } 
+0

'context.BuyerInformation.Attach (objBuyerInformation);' n'est pas réellement nécessaire. C'est un peu bizarre mais ça marche sans. J'ai été surpris aussi :) –

+0

Avoir une explication à ce sujet. Décrivez s'il vous plait. –

+0

Je ne sais pas pourquoi. Cela fonctionne juste sans. Ce tutoriel me soutient aussi: http://www.entityframeworktutorial.net/EntityFramework4.3/update-entity-using-dbcontext.aspx –

Questions connexes