在对SQL执行linq时如何选择所有行?
Select * From TableA
请同时使用查询语法和方法语法。
Answers:
from row in TableA select row
要不就:
TableA
在方法语法中,与其他运算符一起使用:
TableA.Where(row => row.IsInteresting) // no .Select(), returns the whole row.
本质上,您已经选择了所有列,然后select将其转换为您关心的列,因此您甚至可以执行以下操作:
from user in Users select user.LastName+", "+user.FirstName
from row in TableA.Rows
?是否因为Rows
是默认属性?这是LINQ的功能,还是其他地方的功能?只是好奇。
您要选择所有行还是所有列?
无论哪种方式,您实际上都不需要执行任何操作。
DataContext为每个表都有一个属性。您只需使用该属性即可访问整个表。
例如:
foreach(var line in context.Orders) {
//Do something
}
using (MyDataContext dc = new MyDataContext())
{
var rows = from myRow in dc.MyTable
select myRow;
}
要么
using (MyDataContext dc = new MyDataContext())
{
var rows = dc.MyTable.Select(row => row);
}
var rows = dc.MyTable
。
假设TableA
作为table的实体TableA
和TableADBEntities
DB Entity类,
IQueryable<TableA> result;
using (var context = new TableADBEntities())
{
result = context.TableA.Select(s => s);
}
IQueryable<TableA> result;
using (var context = new TableADBEntities())
{
var qry = from s in context.TableA
select s;
result = qry.Select(s => s);
}
本机SQL也可以用作:
IList<TableA> resultList;
using (var context = new TableADBEntities())
{
resultList = context.TableA.SqlQuery("Select * from dbo.TableA").ToList();
}
注意:dbo
是SQL Server中的默认架构所有者。可以SELECT
根据上下文中的数据库构造一个SQL查询。