質問

私は、すべてのデータの表で探していますLINQのコンテキストを持って、私は

すべてのテーブルのフィールドのリストを取得しようとしています
        foreach (var code in ctx.GetType().GetProperties())
        {
            Console.WriteLine(code.PropertyType + " - " + code.Name + " ");
            if (code.PropertyType.ToString().Contains("System.Data.Linq.Table"))
            {
                  //this does not give me what i want here
                  foreach (var pi in code.PropertyType.GetType().GetProperties())
                  {
                   Console.WriteLine(pi.Name);
                  }
            }
        }

これは、各テーブルに私のコラムを配信しません。

任意の考え?

私が持っているすべては私がのプロパティを取得しようとしていますオブジェクトのpropertyInfoあるとき。

この単純化して、私はすべてのプロパティを取得しようとしています

-Hurricane

役に立ちましたか?

解決

foreach (var code in ctx.GetType().GetProperties())
        {
            Console.WriteLine(code.PropertyType + " - " + code.Name + " ");
            if (code.PropertyType.ToString().Contains("System.Data.Linq.Table"))
            {
                  //this does not give me what i want here
                  foreach (var pi in code.PropertyType.GetGenericArguments()[0].GetProperties())
                  {
                   Console.WriteLine(pi.Name);
                  }
            }
        }

それにそれを変更します。もしSystem.Data.Linq.Table上に反射するが、DataContextの上のプロパティは、Tは、データベース内の実際のテーブルを表すクラスである表は、覚えていました。したがって、あなたの代わりにTの上に反映する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top