ドメインモデルを介して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;
}
}