Как сравнить имена столбцов из структуры сущности с содержанием полей класса? - PullRequest
1 голос
/ 07 сентября 2011

У меня есть список объектов (List<Seat> CurrentSeatStates).Эти объекты содержат поле с именем Number.И содержимое этих 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 здесь и динамически сравнивать имя столбца (пример seatRow. A3 ) и содержание поля Number.Чтобы мне не пришлось использовать жестко закодированное имя столбца.И если эти два значения равны (имя столбца и содержимое поля Number), они устанавливают значение из другого поля IsEnabled.

Любая помощь здесь очень ценится!

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Попробуйте что-то вроде этого:

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

Где в columnName вы можете установить изменяемое имя столбца, а в value вы установите значение, которое хотите установить.

1 голос
/ 07 сентября 2011

Используйте Type метод GetProperties(), затем с помощью отражения вы можете установить свойства со значением из запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...