2012-05-22 19 views
0

得到這個工作:如果ValidationErrors持續上升,如何使用DbContext更新分離的實體?

public partial class User 
{ 
public long ID; 
public long Active; 
[Required] 
public string Name; 
} 

void ObjectContextDeactivateUser(User entity) 
{ 
    /* entity instance has set ID = 3, other props are null */ 
    /* context is ObjectContext */ 
    context.Users.Attach(entity); 
    entity.Active = 0; 
    context.ApplyCurrentValues("Users", entity); 
    context.SaveChanges(); 
} 

有沒有一種方法來更新使用的DbContext這行有效列? 任何我嘗試的方式,我得到需要Name屬性的ValidationError。

回答

0

您必須關閉全球驗證,以使這項工作:

void ObjectContextDeactivateUser(User entity) 
{ 
    context.Configuration.ValidateOnSaveEnabled = false; 
    context.Users.Attach(entity); 
    entity.Active = 0; 
    context.SaveChanges(); 
} 

全球驗證不支持的局部變化驗證。

+0

就是這樣。我不知道EF 4.1中的驗證。謝謝 –

+0

有沒有一種方法可以在不向自動生成的DbContext類添加代碼的情況下在全局執行此操作? – Kev

相關問題