2012-03-23 4 views
0

私はWCFとEFを使用してSilverlightアプリケーションを開発しています。生成するトリック同様の列のデータから、エンティティフレームワークのリスト<double>を生成する

データベースが既に存在するため、私はまずデータベースを使用しています。

私は、データ型realを持つ100個の列で構成される表を持っています。各列のクラス内に100個の離散変数の代わりにList<double>またはList<float>のクラスを生成する必要があります。

これは可能ですか?誰かが私に例を与えることができますか?

答えて

0

直接的な方法はありません。あなたがしなければならないのは、反射を使ってList<double>に変換することです。テーブル名がMyObjectとすると、EFはそのテーブルの行を表すクラスMyObjectを生成します。次のようにしてください:

Type type = typeof(MyObject); 
// Get properties (columns) through reflection 
PropertyInfo[] properties = type.GetProperties(); 
List<List<double>> allRows = new List<List<double>>(); 

using(var dbContext = MyDB.GetContext()) 
{ 
    foreach(var row in dbContext.MyRows) 
    { 
     List<double> columnValues = new List<double>(); 
     foreach (PropertyInfo property in properties) 
     { 
      // The sql type REAL will map to either float or double 
      if(property.PropertyType == typeof(float)) 
      { 
       columnValues.Add((double) property.GetValue(row, null)); 
      } 
     } 
     allRows.Add(columnValues); 
    } 
} 

+0

ありがとう、私は反射を認識していますが、同じ機能を達成するための直接的な方法はありません。 – microchip78

関連する問題