2011-08-18 14 views
27

Ben this article ve diğerleri okuyarak kendi bağlamı yazdım ama tema hiçbiri hatta this article okuyarak, yani tanımlanmış bu context.Entry(obj) nerede açıklıyor, ben bu yöntemi uygulamak için nasıl anlayamıyorum ve aşağıdaki hatayı alıyorum:Burada context.Entry()?

Hata 36 'Domain.Entities.OurWebSiteContext' in (bulunan 'Giriş' için tanım ve olabilir türü 'Domain.Entities.OurWebSiteContext' bir ilk argüman kabul uzatma yöntemi 'kaydı' içermez bir yönerge veya bir montaj başvurusu eksik mi?)

Biri beni lütfen yardımcı

Düzenlendi >>

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

aslında DbContext' 'dan' OurWebSiteContext' türetmek mı geçerli: 'kamu sınıf OurWebSiteContext: DbContext'? 'Giriş '' DbContext''in genel bir yöntemidir. Eğer uygulamanız 'DbContext''i anlıyorsa, 'Entry'yi de bilmelidir. – Slauma

+0

Sorumu düzenledim, artık OurWebSiteContext tanımını görebilirsiniz. –

+1

"http://msdn.microsoft.com/en-us/data/gg685467" makalesini okuyarak, bunun bir sürüme özgü sorun olduğunu anladım. Çünkü bu yazının söylediklerinden sonra, programım sorunsuz bir şekilde yürütülüyordu. –

cevap

41

cevaplamak için çok geç olabilir ama başkalarına yardım edebilir, EF 4,0 versiyonu olarak 4.1DbContext kullanır ObjectContext sınıfını kullanır Set<T> ve Entry gibi yöntemlerin tanımlandığı sınıf. Sürüm 4.0 ile burada

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

gibi yapılır sürümü 4.1 kendi diliyle

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

gibi bir şey yapabilirsiniz yararlı bir SO link