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