2011-08-18 2 views
27

내가 this article 및 많은 다른 사람을 읽어 내 자신의 컨텍스트를 썼다,하지만 테마 중 누구도 심지어 this article을 읽고, 내 말은 정의이 context.Entry(obj) 어디 없습니다 설명합니다, 나는이 방법을 구현하는 방법을 이해하지 못할, 나는 다음과 같은 오류가 발생합니다 :여기서 context.Entry()는 무엇입니까?

에러 36 'Domain.Entities.OurWebSiteContext'은이다 (발견 '항목'에 대한 정의와 될 수있는 유형 'Domain.Entities.OurWebSiteContext'의 첫번째 인수 동의없이 확장 방법 '항목'를 포함하지 않는 using 지시문이나 어셈블리 참조가 누락 되었습니까?)

누군가가 밖으로 제발 도와

편집 >>

public class OurWebSiteContext : DbContext 
    { 
     public OurWebSiteContext(string connString) 
      : base(connString) 
     { 

     } 

     public DbSet<Article> Articles { get; set; } 
     public DbSet<Category> Categories { get; set; } 
     public DbSet<Comment> Comments { get; set; } 
    } 
+0

가 실제로 DbContext''에서'OurWebSiteContext'을 유도 했입니다 :'공개 클래스 OurWebSiteContext : DbContext'? 'Entry'는'DbContext'의 public 메소드입니다. 응용 프로그램이'DbContext'를 이해하면'Entry'도 알아야합니다. – Slauma

+0

내 질문을 편집 했으므로 OurWebSiteContext 정의를 볼 수 있습니다. –

+1

"http://msdn.microsoft.com/en-us/data/gg685467"문서를 읽으면 버전 관련 문제가 발생합니다. 이 기사가 말한대로, 내 프로그램이 아무 문제없이 실행 되었기 때문에. –

답변

41

대답하기에 너무 늦을 수 있지만 다른 사람을 도울 수, EF 4.0 버전으로 4.1DbContext를 사용하는 ObjectContext 클래스를 사용하여 클래스는 Set<T>Entry과 같은 메서드가 정의됩니다. 버전 4.0로 당신은 여기

_context.Entry(entity).State = System.Data.EntityState.Modified; 

같은 일 버전 4.1의와

DatabaseContext _context = new DatabaseContext(); 
_context.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified); 

뭔가를 할 수있는 것은 유용한 SO link

관련 문제