У меня есть пользовательский объект в реляционной базе данных, который я сопоставил с 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;
}
}