Итерация по свойствам и значениям объекта, возвращенного через запрос linq в модели предметной области.

У меня есть пользовательская сущность в реляционной базе данных, которую я сопоставил с CLR через модель предметной области. Таким образом, используя следующий оператор, я могу извлечь объект из моей базы данных в память с помощью запроса LINQ к модели предметной области, например:

var inspection = (from i in dbContext.New_testinspectionExtensionBases
              where i.New_testinspectionId == currentInspection   
              select i).First();                         

В этом объекте есть свойства/поля, к которым мне нужен доступ, мне нужно иметь возможность определить имя свойства/поля, а также его значение. Я хочу просмотреть эти элементы в памяти и записать их имена и значения в консоль.

Я пытался использовать этот подход, но не смог понять, как исправить синтаксис. (Я также не уверен, что GetProperties является правильным методом для использования, GetFields по какой-то причине ничего не возвращал, поэтому я предположил, что это было путь ), но на самом деле это не имеет значения, поскольку все, что мне нужно, это доступ для чтения к значению;

var inspectionReportFields = inspection.GetType().GetProperties(); 
// I called this inspectionReportfields because the entity properties correspond to 
// form/report fields I'm generating from this data.

foreach (var reportField in inspectionReportFields)
{
    var value = reportField.GetValue();
    Console.WriteLine(reportField.Name);
    Console.WriteLine(value);
}

Есть ли более простой способ получить значение свойства/поля при использовании модели предметной области, такой как EF или openaccess? Если нет, то правильно ли я поступаю? И, наконец, если да, то как исправить синтаксис в объявлении переменной значения?

Вот несколько примеров полей/свойств из кода, сгенерированного моделью предметной области, для справки;

    private int? _new_systemGauges;
    public virtual int? New_systemGauges 
    { 
        get
        {
            return this._new_systemGauges;
        }
        set
        {
            this._new_systemGauges = value;
        }
    }

    private int? _new_systemAlarm ;
    public virtual int? New_systemAlarm 
    { 
        get
        {
            return this._new_systemAlarm;
        }
        set
        {
            this._new_systemAlarm = value;
        }
    }
39
задан SteveC 22 August 2017 в 08:35
поделиться