아마도 업데이트 할 수있는 속성을 사용할 수있는 메서드를 만들고 싶고 손길이없는 사용자는 그대로 둡니다.Entity Framework 4.0의 테이블 필드 업데이트에 대한 일반적인 해결책
public static void updateTable(int id, string field1, string field2, string field3){
using(var context = new Entities()){
var obj = context.Table.Where(x=>x.id == id).FirstOrDefault();
if(obj != null){
obj.field1 = field1;
...
obj.SaveChanges();
}
}
}
그러나이 패턴에서, 난 그냥 하나의 필드를 업데이트 할 방법으로 4 개 매개 변수를 전달해야합니다 여기
은 내가 한 것입니다. 전달 된 필드 만 업데이트하는 일반 솔루션이 있습니까?
나는 이런 식으로 뭔가를 내놓았다 :
public static void updateTable(int id, object data_json){
using(var context = new Entities()){
var obj = context.Table.Where(x=>x.id == id).FirstOrDefault();
if(obj != null){
if(data_json['field1']!=null) //something like this
obj.field1 = data_json['field1'];
...
obj.SaveChanges();
}
}
}
을하지만 내가 널이 될 수있는 필드를 설정하고자 할 경우를 처리 할 수 없습니다. 아니면 더 좋은 해결책이 있습니까? 당신이 관계 업데이트에 대한 상관하지 않는 경우
3 개의 가능한 스칼라 속성 중 1 개만 설정하면 'ApplyCurrentValues'는 다른 2 개의 속성을'null '로 설정합니다. 'ApplyCurrentValues'는 설정 한 값만 업데이트하고 변경되지 않은 속성은 그대로 두는 방법이 있습니까? –