2011-09-07 22 views
1

我有對象列表(List<Seat> CurrentSeatStates)。這些對象包含已命名的數字。這些Number字段的內容與某些列名稱相同。我正在使用實體框架。這裏是我的代碼部分:如何比較實體框架中的列名與類字段的內容?

Seats seatsRow = new Seats(); 

seatsRow = (from seats in Db.Seats where seats.SeanceId == seanceId select seats).First();    

seatsRow.A1 = !(from s in CurrentSeatStates where s.Number.Equals("A1") select s.IsEnabled).Single(); 
seatsRow.A2 = !(from s in CurrentSeatStates where s.Number.Equals("A2") select s.IsEnabled).Single(); 
seatsRow.A3 = !(from s in CurrentSeatStates where s.Number.Equals("A3") select s.IsEnabled).Single(); 
... 

我想在這裏使用foreach循環和動態比較列名(例如seatsRow A3和現場Number內容。這樣我就不必使用硬編碼的列名。如果這兩個值相等(列名和內容的數字字段),他們從另一個字段IsEnabled設置值。

這裏的任何幫助非常感謝!

回答

1

嘗試類似的東西:

PropertyInfo pi = seatsRow.GetType().GetProperty(*columnName*); 
      pi.SetValue(seatsRow, *value*, null); 

COLUMNNAME可以設置多變列名和下設置要設定值。

1

使用Type方法GetProperties()然後使用反射,您可以使用查詢中的值設置屬性。

相關問題