欢迎来到天天文库
浏览记录
ID:42577796
大小:154.07 KB
页数:43页
时间:2019-09-18
《Linq to sql server 基本语法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linqtosqlserver基本语法Where操作适用场景:实现过滤,查询等功能。说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句。Where操作包括3种形式,分别为简单形式、关系条件形式、First()形式。下面分别用实例举例下:1.简单形式:例如:使用where筛选在伦敦的客户varq=fromcindb.Customerswherec.City=="London"selectc;再如:筛选1994年或之后雇用的雇员:varq=fromeindb.Employeeswheree.HireDate>=newDateT
2、ime(1994,1,1)selecte;2.关系条件形式:筛选库存量在订货点水平之下但未断货的产品:varq=frompindb.Productswherep.UnitsInStock<=p.ReorderLevel&&!p.Discontinuedselectp;筛选出UnitPrice大于10或已停产的产品:varq=43frompindb.Productswherep.UnitPrice>10m
3、
4、p.Discontinuedselectp;下面这个例子是调用两次where以筛选出UnitPrice大于10且已停产的产品。varq=db.Products.Where(p
5、=>p.UnitPrice>10m).Where(p=>p.Discontinued);3.First()形式:返回集合中的一个元素,其实质就是在SQL语句中加TOP(1)。简单用法:选择表中的第一个发货方。Shippershipper=db.Shippers.First();元素:选择CustomerID为“BONAP”的单个客户Customercust=db.Customers.First(c=>c.CustomerID=="BONAP");条件:选择运费大于10.00的订单:Orderord=db.Orders.First(o=>o.Freight>10.00M);
6、 Select/Distinct操作符适用场景:o(∩_∩)o…查询呗。说明:和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也就是结果返回回来;延迟。Select/Distinct操作包括9种形式,分别为简单用法、匿名类型形式、条件形式、指定类型形式、筛选形式、整形类型形式、嵌套类型形式、本地方法调用形式、Distinct形式。1.简单用法:这个示例返回仅含客户联系人姓名的序列。43varq=fromcindb.Customersselectc.ContactName;注意:这个语句只是一个声明或者一个描述,
7、并没有真正把数据取出来,只有当你需要该数据的时候,它才会执行这个语句,这就是延迟加载(deferredloading)。如果,在声明的时候就返回的结果集是对象的集合。你可以使用ToList()或ToArray()方法把查询结果先进行保存,然后再对这个集合进行查询。当然延迟加载(deferredloading)可以像拼接SQL语句那样拼接查询语法,再执行它。2.匿名类型形式:说明:匿名类型是C#3.0中新特性。其实质是编译器根据我们自定义自动产生一个匿名的类来帮助我们实现临时变量的储存。匿名类型还依赖于另外一个特性:支持根据property来创建对象。比如,vard=new{Na
8、me="s"};编译器自动产生一个有property叫做Name的匿名类,然后按这个类型分配内存,并初始化对象。但是vard=new{"s"};是编译不通过的。因为,编译器不知道匿名类中的property的名字。例如stringc="d";vard=new{c};则是可以通过编译的。编译器会创建一个叫做匿名类带有叫c的property。例如下例:new{c,ContactName,c.Phone};ContactName和Phone都是在映射文件中定义与表中字段相对应的property。编译器读取数据并创建对象时,会创建一个匿名类,这个类有两个属性,为ContactName和P
9、hone,然后根据数据初始化对象。另外编译器还可以重命名property的名字。varq=fromcindb.Customersselectnew{c.ContactName,c.Phone};上面语句描述:使用SELECT和匿名类型返回仅含客户联系人姓名和电话号码的序列varq=fromeindb.Employeesselectnew{Name=e.FirstName+""+e.LastName,Phone=e.HomePhone};上面语句描述:使用SELECT和匿名类型返回仅含雇员姓名
此文档下载收益归作者所有