2014-08-29 9 views
0

問題標題可能會令人困惑,因爲我沒有找到合適的句子來指定我的問題。我有一個包含60個屬性[Columns]的實體。現在我想插入這個實體。正常的插入代碼是:像數組元素一樣訪問實體[Table]的屬性[Columns]並使用EF插入新行?

tblEmployee objEmployee= new tblEmployee(); 

tblEmplyee.Name="abc"; // Col 1 

tblEmplyee.Email="[email protected]"; // Col 2 

tblEmplyee.S1="s1"; // Col 3 
tblEmplyee.S2="s2"; // Col 4 
. 
. 
. 
tblEmplyee.S60="s60"; // Col 60 
db.AddTotblEmployee(objEmployee); 
db.SaveChanges(); 

但我有一個條件,我需要插入S1到S60的值變化。 例如情況1:從S1到S17值1,S18到S50值2和S51到S60值3. 情況2:從S1到S11值1,S11到S40值2,S40到S43值3和S44到S60值4.

而且這種模式可能每次都不同,並且取決於UI的用戶輸入。

有什麼辦法像數組索引一樣訪問tblEmployee的列嗎?

tblEmployee objEmployee= new tblEmployee(); 

    tblEmplyee.col["1"]="abc"; // Col 1 

    tblEmplyee.col["2"]="[email protected]"; // Col 2 

    tblEmplyee.col["3"]="s1"; // Col 3 
    . 
    . 
    . 

或者其他方式?

+0

類似的問題應該讓你去代碼:http://stackoverflow.com/questions/6247490/entity-framework-loop-through-properties-for-更新 – Jester 2014-08-29 09:12:53

回答

0

你好這裏是你可以使用

System.Reflection.PropertyInfo[] properties = typeof(tblEmployee).GetProperties(); 
     tblEmployee objEmployee = new tblEmployee(); 
     for(int i=0;i<properties.Length;i++) 
     { 
      properties[i].SetValue(objEmployee, 1);//First param is obj and 2nd is value for the column which will be saved in db. 
     }