2016-11-02 12 views
0

을 삭제하는 동안 잘못된 개체의 속성 값을 제공합니다 awCategoryGroup을 입력하십시오. 문제는 GridView CommandField에서 삭제 버튼을 사용하여 레코드를 삭제하려는 경우 eds_Deleting 메소드를 호출하는 것입니다.Microsoft.AspNet.EntityDataSource 내가이 같은 <code>Microsoft.AspNet.EntityDataSource</code>을 사용하고 업데이트 또는

C 번호 : GridView에 대한 데이터를 선택할 때

protected void eds_Deleting(object sender, Microsoft.AspNet.EntityDataSource.EntityDataSourceChangingEventArgs e) 
{ 
    awCategoryGroup cg = (awCategoryGroup)e.Entity; 
    cg.isValid = false; 
    e.Context.SaveChanges(); 
    e.Cancel = true; 
} 

데이터베이스는 다음과 같습니다.

DB :

ID Name Code isValid 
========================================== 
19 Roles UserRole True 
20 Actions ActionType True 

목표FalseisValid 열을 설정해야합니다. 그러나 eds_Deleting 메서드가 호출 될 때 (awCategoryGroup)e.Entity에는 bool (DB에 bit) 값의 속성 isValid을 제외한 해당 속성의 해당 값이 포함됩니다. True이어야합니다. 설정하기 전에 이미 False입니다. 속성이 수정되지 않았으므로 e.Context.SaveChanges();을 호출 할 때 저장이 수행되지 않습니다.

버그입니까 아니면 잘못 되었습니까? 이 철학은 EF4에서 잘 작동했지만 EF6으로 마이그레이션 한 후에 문제가 있습니다.

답변

0

isValidGridView의 보이는 열 중 하나 여야합니다.

그래서 eds_Deleting은 데이터베이스에서 엔티티와 정확히 작동하지 않지만 그 부분은 GridView에서만 사용됩니다. GridView에서 사용되지 않는 값은 기본값 (보통 null 또는 false)입니다.

그럼 특히 EF5 EntityDataSourceEF6 EntityDataSource의 차이점입니다. EF5 버전은 완전히로드 된 개체와 함께 작동하지만 EF6 버전에서는 작동하지 않습니다.