2013-01-21 191 views
0

我有一個實體,我想更新而不更新其多個實體列表。即時通訊使用代碼優先,但我不能得到它的工作... 進出口使用Ninject和一切工作,除了我的更新...一對多實體框架5更新代碼第一

//實體

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; } 
} 

//接口

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(); 

保存方法正在工作,當我只想添加一個新的對象到我的數據庫。但更新不會改變什麼......

我會appricate如果有人能告訴我什麼即時失蹤了......

/THXĴ

回答

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

沒有不工作...仍然沒有更新。 Thx爲您快速回答壽。 – JeppePepp

+0

Im獲取更新的對象,但更新沒有通過我的數據庫。實體不能保存更改... – JeppePepp

+0

是否有任何例外? – daryal

2

使用以下標準,該工作我

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

     return objBuyerInformation; 
    } 
+0

'context.BuyerInformation.Attach(objBuyerInformation);'實際上並不需要。這有點奇怪,但它沒有它的作品。我也很驚訝:) –

+0

對此有任何解釋。請描述。 –

+0

我不知道爲什麼。它只是沒有它的工作。本教程也支持我:http://www.entityframeworktutorial.net/EntityFramework4.3/update-entity-using-dbcontext.aspx –

相關問題