2017-01-16 64 views
0

我有一个存储过程有多个连接,将所有数据都拉到数据集中的结果集I.e中,现在我想写一个linq查询。我怎样才能做到这一点?在存储过程结果集中的Linq查询Ado.Net

我期待:

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的所有行并创建一些Type的泛型集合...就像上面的例子一样,我们可以通过定义一个类作为trade来轻松完成它,并逐个循环并添加它到列表...我必须创建一个类存储过程或EF自动执行它吗?如何 –

回答

0

到可以在数据表写LINQ查询像

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

如果trade_num是整数。以此为例,并相应地添加您的条件。

希望它能帮助你。