2017-09-27 3 views
0

많은 열이있는 테이블이 있으며 일련의 매개 변수와 일치하는 열을 업데이트해야합니다. 문자열을 연결 한 다음 문자열 결과를 사용하여 Telerik의 OpenAccess를 사용하여 데이터베이스의 일치하는 명명 된 열을 업데이트 할 수 있습니까? 그렇다면 여기에 반영이 필요하다고 생각하고 있습니까? 아래 그림처럼 뭔가를 할 수 있도록하고 싶습니다 :열 이름을 문자열과 일치시켜 테이블 열을 업데이트하십시오.

단순화 된 예를 들어 테이블 :

Sku   QtyOnHand Whse1Aug2017 Whse2Aug2017 Whse3Aug2017 
================================================================== 
ABC-123  87   2    4    8 
XYZ-789  43   0    5    4 


string warehouseId = "1" 
string month = "Aug" 
string year = "2017" 
string sku = "ABC-123" 
int qtySold = 3; 

string columnName = "Whse" + warehouseId + month + year; 

var query = (from s in model.Sales 
      where s.SKU == sku 
      select s).FirstOrDefault(); 

query.columnName = query.columnName + qtySold; 
query.SaveChanges(); 

답변

1

당신은이에 대한 Reflection를 사용할 수 있습니다. 예 :

void UpdateProperty(object targetObject, string propertyName, object value) 
{ 
    var pi = targetObject.GetType().GetProperty(propertyName); 
    pi.SetValue(targetObject, value); 
} 
0

반사가 좋지만 약간 비쌉니다.

Telerik 데이터 액세스는이 기능을 기본적으로 사용합니다. 인위적인 유형/필드에서 값을 설정하고 가져 오는 API를 확인하십시오. 여기 http://docs.telerik.com/data-access/feature-reference/api/context-api/feature-ref-api-context-api-artificial-data-api

가 어떻게 작동하는지 예는 다음과 같습니다 :

category.SetFieldValue("CategoryName", "MyCategory"); 

category.SetFieldValue("Description", "New Description"); 
절 "설정 및 인공 속성/필드 가져 오기"를 참조하십시오