❶ linq to sql 通用查询语法 return db.Set<T>().Where<T>(wherelambda).AsQueryable();
Linq是延迟查询的。
测试(以下查询,查询分析器中跟踪是带where条件的):
privatevoidButton_Click(objectsender,RoutedEventArgse)
{
List<v_plancase>list=GetData(p=>p.xh==1).ToList();
}
///<summary>
///查询
///</summary>
///<paramname="ExpWhere">查询条件</param>
///<returns></returns>
staticIQueryable<v_plancase>GetData(Expression<Func<v_plancase,bool>>ExpWhere)
{
TESTEntitiesdb=newTESTEntities();
returndb.v_plancase.Where(ExpWhere).AsQueryable();
}
详细介绍:
在用户创建 LINQ 查询后,该查询将转换为一个命令目录树。 命令目录树是与实体框架兼容的查询表示形式。 然后,针对数据源执行该命令目录树。 在执行查询时,将计算所有查询表达式(即查询的所有组成部分),包括在结果具体化中使用的那些表达式。
执行查询表达式的时间点可能会有所不同。 LINQ 查询始终在循环访问查询变量时执行,而不是在创建查询变量时执行。 这称为“延迟执行”。 您也可以强制立即执行查询,这对于缓存查询结果很有用。
当执行 LINQ to Entities 查询时,查询中的有些表达式可能在服务器上执行,而有些部分可能在客户端上本地执行。 表达式的客户端计算发生于在服务器上执行查询之前。 如果在客户端上计算表达式,则该计算的结果将替换查询中的表达式,然后在服务器上执行查询。 因为是对数据源执行查询,所以数据源配置将重写客户端中指定的行为。 例如,null 值处理和数值精度取决于服务器设置。 在查询执行期间在服务器上引发的任何异常都将直接向上传递到客户端。
参考MSDN文档:http://msdn.microsoft.com/zh-cn/library/vstudio/bb738633(v=vs.100).aspx
❷ linq to sql语句from in select各参数什么意思
linq语句是
from p in username where p.IndexOf("王") == 0 select p;
这里的username代表查询对象,p是随意的,它可以是任何字符(p in username 表示p是username的元素)。
p.IndexOf("王") == 0 查询不以”王“开头的数据。
❸ sql联表查询 linq to sql 反射
将A、B表放到数据库,例如放到AdventureWorks数据库,选中这两个表作为数据源对象,将它们拖到O/R设计器窗口,产生DataContext类映射数据库,两个实体类A和B分别映射表A和表B。在Main方法中执行以下语句:
string connectionString =
"Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=True";
AdventureWorksDataContext db = new AdventureWorksDataContext(connectionString);
var query = from a in db.A
from b in db.B
where a.typeid==b.id
select new
{idA=a.id,name=a.name,typeid=a.typeid,idB=b.id,name2=b.name2};
foreach(var q in query)
Console.WriteLine(q);
❹ 能把linq中的where里的条件转为sql吗
可以,linq其实也是sql的功能,只是linq和sql的写法不一样,关键字什么的都一样,两个是可以相互转换的。
❺ LINQ to SQL语句之动态查询条件如何参数化
var query = from x in MyDbContext()
select x;
if(name !=null)
query = from x in query
where x.Name == name
select x;
❻ 如何使用linq to sql语句,查询表中后6条数据
storeDB.Albums.OrderByDescending(a => a.OrderDetails.Count()).Take(count).ToList();
数据上下文.Albums数据表.倒序排序(条件为按照各数据关联的OrderDetails数据表中数据的条数).拿记录(count条).立即执行转为list
❼ 什么是ling to sql
ling to sql 首先得先解释 linq
LINQ = 语言集成查询(Language INtegrated Query)
是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。
举个例子,比如你的C#代码里面,有个 Apple 对象,对象有 颜色这个属性
当给你一个 Apple 类的列表,要你返回所有 颜色为红色的。
如果没有 LINQ 的话, 那么就是 for 循环, 然后 if
使用 LINQ 的话, 就是有点像数据库的 SQL 语句的写法
var query =
from apple in appleList
where apple.Color == "红色"
select apple;
关于 LINQ 的例子代码:
http://hi..com/wangqing999/blog/item/40982215d2625371ca80c494.html
LINQ to SQL 呢?
就是首先是通过开发工具, 通过读取数据库中的表结构,来创建 C# / VB.NET 的代码
比如你有个表 Test, 有2个字段 id, value
那么开发工具会产生一个类, 叫 Test. 这个类有2个属性 id, value
然后你可以通过写 LINQ 的方式, 来查询数据库里面的数据。
var query =
from test in context.Test
select test;
关于 LINQ to SQL 的例子代码:
http://hi..com/wangqing999/blog/item/143b63da8185904594ee37ee.html
❽ SQL语句转化为Linq语句
分少点!回头帮我的团队打工偿还吧!O(∩_∩)O哈哈~
-------------
我的表是Table_1s和Table_2s
linq 查询如下:
from t in Table_1s
join f in Table_2s on t.B equals f.Key into FD
from f in FD.Where(b=>b.RowName=="B").DefaultIfEmpty()
join s in Table_2s on t.C equals s.Key into FDS
from s in FDS.Where(b=>b.RowName=="C").DefaultIfEmpty()
select new
{
A=t.A,
B=f.Value,
C=s.Value
}
---
对应sql如下:
-- Region Parameters
DECLARE @p0 NVarChar(1) SET @p0 = 'B'
DECLARE @p1 NVarChar(1) SET @p1 = 'C'
-- EndRegion
SELECT [t0].[A], [t1].[value] AS [B], [t2].[value] AS [C]
FROM [Table_1] AS [t0]
LEFT OUTER JOIN [Table_2] AS [t1] ON ([t1].[RowName] = @p0) AND ([t0].[B] = [t1].[key])
LEFT OUTER JOIN [Table_2] AS [t2] ON ([t2].[RowName] = @p1) AND ([t0].[C] = [t2].[key])
---
应该满足你的要求!
❾ linq to sql 关于any的用法,该怎么处理
Any
说明:用于判断集合中是否有元素满足某一条件;不延迟。(若条件为空,则集合只要不为空就返回True,否则为False)。有2种形式,分别为简单形式和带条件形式。
1.简单形式:
仅返回没有订单的客户:
var q =
from c in db.Customers
where !c.Orders.Any()
select c;
生成SQL语句为:
SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName],
[t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region],
[t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax]
FROM [dbo].[Customers] AS [t0]
WHERE NOT (EXISTS(
SELECT NULL AS [EMPTY] FROM [dbo].[Orders] AS [t1]
WHERE [t1].[CustomerID] = [t0].[CustomerID]
))
2.带条件形式:
仅返回至少有一种产品断货的类别:
var q =
from c in db.Categories
where c.Procts.Any(p => p.Discontinued)
select c;
生成SQL语句为:
SELECT [t0].[CategoryID], [t0].[CategoryName], [t0].[Description],
[t0].[Picture] FROM [dbo].[Categories] AS [t0]
WHERE EXISTS(
SELECT NULL AS [EMPTY] FROM [dbo].[Procts] AS [t1]
WHERE ([t1].[Discontinued] = 1) AND
([t1].[CategoryID] = [t0].[CategoryID])
)
❿ VS2017中什么找linq to sql
linq to sql是一个语法糖,能用linq查询的方式去查询数据库,省去了复杂的sql语句,他不在新建项中,只有任何实现了IQueryable<>接口的集合都能用。你想在查询数据库中用它的话,直接建好数据库后,新建ado.net实体数据模型,选择来自数据库的codefirst,选择刚才的数据库,然后就能看到实体模型类,接下来就可以使用linq to sql语法去查询了