2017-01-16 10 views
0

私は複数の結合を持つストアドプロシージャを持っています。データセット内のすべてのデータを結果セットに取り込みました。今はlinqクエリを書きたいと思っています。どうやってやるの?ストアドプロシージャの結果セット内のLinqクエリ

私は期待しています:

IEnumerable<SomeType> result; 

これは私が試してみましたが、それは効率的では見えないものです[私はSomeTypeのプロパティが定義されている方法を知っておく必要があります。]。

SqlCommand cmd = new SqlCommand("Select top 10 * from trade"); 
cmd.Connection = con; 

if (con.State != ConnectionState.Open) 
{ 
    con.Open(); 
} 

SqlDataReader dr = cmd.ExecuteReader(); 
DataTable dt = new DataTable(); 

dt.Load(dr); 
var result = dt.AsEnumerable(); 

string valresukir = string.Empty; 

var sortResult = result.OrderBy(x => Convert.ToInt32(x["trade_num"]) > 12); 
string valuedata = string.Empty; 

foreach (var i in sortResult) 
{ 
    valuedata += i["trade_num"].ToString(); 
} 
+0

単純な言葉では、私はrowcollectionのすべての行にループし、いくつかのタイプのジェネリックコレクションを作成したいと思います...上記の例のように、クラスをtradeとして定義し、それを1つずつループして追加しますそれはリストに...私はストアprocまたはEFのクラスを自動的に作成する必要がありますか?そしてどうやって –

答えて

0

からtrade_numが整数の場合

var data= from dataRow in dt.AsEnumerable() 
      where dataRow.Field<int>("trade_num") > 12 
      select dataRow 

のようなデータテーブルの上にLINQクエリを書くことができます。例として取り、それに応じて条件を追加してください。

ご希望の場合はお手数ですが、

関連する問題