Linq to sql 如何使用LINQ从类似SQLReader的表中逐行读取数据
谁能告诉我如何使用Linq替换此代码 使用Microsoft.Practices.EnterpriseLibrary.DataLinq to sql 如何使用LINQ从类似SQLReader的表中逐行读取数据,linq-to-sql,Linq To Sql,谁能告诉我如何使用Linq替换此代码 使用Microsoft.Practices.EnterpriseLibrary.Data Public IDataReader GetRowByRowData() { Database Db = DatabaseFactory.CreateDatabase(); string sqlString = "SELECT * FROM TableTest"; DbCommand DbCmd = PpwDb.GetSqlStringCommand(sqlSt
Public IDataReader GetRowByRowData()
{
Database Db = DatabaseFactory.CreateDatabase();
string sqlString = "SELECT * FROM TableTest";
DbCommand DbCmd = PpwDb.GetSqlStringCommand(sqlString);
Db .ExecuteReader(DbCmd);
}
请使用Linq帮助从TableTest表中获取逐行数据。您可以这样做:
var myQyery=from a in dataContext.Mytable
select a;
foreach(var item in myQuery)
{
//what you like
}
ToList
方法将查询数据库并获得结果集。我将主键从表加载到列表中。根据数据集和主键的大小,加载到列表不会花费太长时间。加载键后,将FirstOrDefault()与where子句一起使用,如下所示:
var keys = Db.TableTest.Select(x => x.primaryKey).ToList();
foreach (var k in keys)
{
var record = (from i in Db.TableTest
where i.primaryKey == k
select new
{
//Select only the columns you need to conserve memory
col1 = i.col1,
col2 = i.col2
}).FirstOrDefault();
//Process the record
}
感谢Nima和Sridhar。SqlReader逐行读取。当我们从中读取时,它一次只保存一行。但是匿名变量保存所有记录。请建议使用Linq to Sql替换SqlReader?@Nima:感谢Nima和Sridhar。SqlReader逐行读取。当我们从中读取时,它一次只保存一行。但是匿名变量保存所有记录。请建议使用Linq to Sql替换sqlReader?
var keys = Db.TableTest.Select(x => x.primaryKey).ToList();
foreach (var k in keys)
{
var record = (from i in Db.TableTest
where i.primaryKey == k
select new
{
//Select only the columns you need to conserve memory
col1 = i.col1,
col2 = i.col2
}).FirstOrDefault();
//Process the record
}