2013-01-21 3 views
0

MANY 엔티티 목록을 업데이트하지 않고 업데이트하려는 엔티티가 하나 있습니다. 임일대 다 Entity Framework 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(); 
... 임해서 Ninject를 사용하고 모든 것을 내 업데이트를 제외하고 노력하고 있습니다 ... 코드 - 일층를 사용하지만 난 그것을 얻 기운

데이터베이스에 새 개체를 추가하려는 경우 Save 메서드가 작동합니다. 그러나 업데이트는 늘 ...

놓치고 무엇을 메신저 사람이 말해 줄 수 있다면 나는 appricate 것

...

/들으 J

답변

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

아니요 ... 아직 업데이트가 없습니다. UR 빠른 대답 tho Thx. – JeppePepp

+0

임 업데이트 된 개체를 다시 받고 있지만 업데이 트가 내 데이터베이스로 이동하지 않습니다. 엔티티 캔트 변경 사항을 저장하지 ... – 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 –

관련 문제