- 浏览: 59981 次
- 性别:
- 来自: 北京
最新评论
-
chungle:
hatedance 写道这个page method返回的是ht ...
使用 jQuery 调用 ASP.NET AJAX Page Method -
hatedance:
这个page method返回的是html片段吗?也就是说只能 ...
使用 jQuery 调用 ASP.NET AJAX Page Method
适用场景:o(∩_∩)o… 查询呗。 说明:和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也就是结果返回回来;延迟。 Select/Distinct操作包括9种形式,分别为简单用法、匿名类型形式、条件形式、指定类型形式、筛选形式、整形类型形式、嵌套类型形式、本地方法调用形式、Distinct形式。 这个示例返回仅含客户联系人姓名的序列。 注意:这个语句只是一个声明或者一个描述,并没有真正把数据取出来,只有当你需要该数据的时候,它才会执行这个语句,这就是延迟加载(deferred loading)。如果,在声明的时候就返回的结果集是对象的集合。你可以使用ToList() 或ToArray()方法把查询结果先进行保存,然后再对这个集合进行查询。当然延迟加载(deferred loading)可以像拼接SQL语句那样拼接查询语法,再执行它。 说明:匿名类型是C#3.0中新特性。其实质是编译器根据我们自定义自动产生一个匿名的类来帮助我们实现临时变量的储存。匿名类型还依赖于另外一个特性:支持根据property来创建对象。比如,var d = new { Name = "s" };编译器自动产生一个有property叫做Name的匿名类,然后按这个类型分配内存,并初始化对象。但是var d = new {"s"};是编译不通过的。因为,编译器不知道匿名类中的property的名字。例如string c = "d";var d = new { c}; 则是可以通过编译的。编译器会创建一个叫做匿名类带有叫c的property。 上面语句描述:使用 SELECT 和匿名类型返回仅含客户联系人姓名和电话号码的序列 上面语句描述:使用SELECT和匿名类型返回仅含雇员姓名和电话号码的序列,并将FirstName和LastName字段合并为一个字段“Name”,此外在所得的序列中将HomePhone字段重命名为Phone。 上面语句描述:使用SELECT和匿名类型返回所有产品的ID以及HalfPrice(设置为产品单价除以2所得的值)的序列。 说明:生成SQL语句为:case when condition then else。 上面语句描述:使用SELECT和条件语句返回产品名称和产品供货状态的序列。 说明:该形式返回你自定义类型的对象集。 上面语句描述:使用SELECT和已知类型返回雇员姓名的序列。 说明:结合where使用,起到过滤作用。 上面语句描述:使用SELECT和WHERE返回仅含伦敦客户联系人姓名的序列。 说明:其select操作使用了匿名对象,而这个匿名对象中,其属性也是个匿名对象。 语句描述:使用SELECT 和匿名类型返回有关客户的数据的整形子集。查询顾客的ID和公司信息(公司名称,城市,国家)以及联系信息(联系人和职位)。
说明:返回的对象集中的每个对象DiscountedProducts属性中,又包含一个集合。也就是每个对象也是一个集合类。 语句描述:使用嵌套查询返回所有订单及其OrderID 的序列、打折订单中项目的子序列以及免送货所省下的金额。 这个例子在查询中调用本地方法PhoneNumberConverter将电话号码转换为国际格式。 PhoneNumberConverter方法如下: 下面也是使用了这个方法将电话号码转换为国际格式并创建XDocument 说明:筛选字段中不相同的值。用于查询不重复的结果集。生成SQL语句为:SELECT DISTINCT [City] FROM [Customers] 语句描述:查询顾客覆盖的国家。Select/Distinct操作符
1.简单用法:
var q =
from c in db.Customers
select c.ContactName;
2.匿名类型形式:
例如下例:new{c,ContactName,c.Phone};ContactName和Phone都是在映射文件中定义与表中字段相对应的property。编译器读取数据并创建对象时,会创建一个匿名类,这个类有两个属性,为ContactName和Phone,然后根据数据初始化对象。另外编译器还可以重命名property的名字。var q =
from c in db.Customers
select new {c.ContactName, c.Phone};
var q =
from e in db.Employees
select new
{
Name = e.FirstName + " " + e.LastName,
Phone = e.HomePhone
};
var q =
from p in db.Products
select new
{
p.ProductID,
HalfPrice = p.UnitPrice / 2
};
3.条件形式:
var q =
from p in db.Products
select new
{
p.ProductName,
Availability =
p.UnitsInStock - p.UnitsOnOrder < 0 ?
"Out Of Stock" : "In Stock"
};
4.指定类型形式:
var q =
from e in db.Employees
select new Name
{
FirstName = e.FirstName,
LastName = e.LastName
};
5.筛选形式:
var q =
from c in db.Customers
where c.City == "London"
select c.ContactName;
6.shaped形式(整形类型):
var q =
from c in db.Customers
select new {
c.CustomerID,
CompanyInfo = new {c.CompanyName, c.City, c.Country},
ContactInfo = new {c.ContactName, c.ContactTitle}
};
7.嵌套类型形式:
var q =
from o in db.Orders
select new {
o.OrderID,
DiscountedProducts =
from od in o.OrderDetails
where od.Discount > 0.0
select od,
FreeShippingDiscount = o.Freight
};
8.本地方法调用形式(LocalMethodCall):
var q = from c in db.Customers
where c.Country == "UK" || c.Country == "USA"
select new
{
c.CustomerID,
c.CompanyName,
Phone = c.Phone,
InternationalPhone =
PhoneNumberConverter(c.Country, c.Phone)
};
public string PhoneNumberConverter(string Country, string Phone)
{
Phone = Phone.Replace(" ", "").Replace(")", ")-");
switch (Country)
{
case "USA":
return "1-" + Phone;
case "UK":
return "44-" + Phone;
default:
return Phone;
}
}
XDocument doc = new XDocument(
new XElement("Customers", from c in db.Customers
where c.Country == "UK" || c.Country == "USA"
select (new XElement("Customer",
new XAttribute("CustomerID", c.CustomerID),
new XAttribute("CompanyName", c.CompanyName),
new XAttribute("InterationalPhone",
PhoneNumberConverter(c.Country, c.Phone))
))));
9.Distinct形式:
var q = (
from c in db.Customers
select c.City )
.Distinct();
发表评论
-
LINQ简介
2009-06-10 16:58 643查询表达式(LINQ)简介 在上两篇我介绍了C#3. ... -
LINQ to SQL语句(25)之继承
2009-06-10 16:57 775继承支持 LINQ to SQL 支持单表映射,其整 ... -
LINQ to SQL语句(23)之动态查询
2009-06-10 16:55 1293动态查询 有这样一 ... -
LINQ to SQL语句(22)之DataContext
2009-06-10 16:54 695DataContext DataContext作 ... -
LINQ to SQL语句(21)之用户定义函数
2009-06-10 16:52 705用户定义函数 我们 ... -
LINQ to SQL语句(20)之存储过程
2009-06-10 16:51 721存储过程 在我们编写程序中,往往需要一些存储过程,在 ... -
LINQ to SQL语句(19)之ADO.NET与LINQ to SQL
2009-06-10 16:50 791ADO.NET与LINQ to SQL 它基于由 A ... -
LINQ to SQL语句(18)之运算符转换
2009-06-10 16:49 865运算符转换 1.AsEnumerable:将类型转换为泛 ... -
LINQ to SQL语句(17)之对象加载
2009-06-10 16:48 590对象加载 延迟加载 在查询某对象时,实际上你只查询该对 ... -
LINQ to SQL语句(16)之对象标识
2009-06-10 16:47 521对象标识 运行库中的对象具有唯一标识。引用同一 ... -
LINQ to SQL语句(15)之String
2009-06-10 16:46 790字符串(String) LINQ t ... -
LINQ to SQL语句(14)之Null语义和DateTime
2009-06-10 16:46 915Null语义 说明:下面第一个例子说明查询Reports ... -
LINQ to SQL语句(13)之开放式并发控制和事务
2009-06-10 16:45 721Simultaneous Changes开放 ... -
LINQ to SQL语句(12)之Delete和使用Attach
2009-06-10 16:44 755删除(Delete) 1.简单形式 说明:调用Dele ... -
LINQ to SQL语句(11)之Update
2009-06-10 16:43 788更新(Update) 说明:更新操作,先获取对象,进行修 ... -
LINQ to SQL语句(10)之Insert
2009-06-10 16:42 786插入(Insert) 1.简单形式 说明:new一个对 ... -
LINQ to SQL语句(9)之Top/Bottom和Paging和SqlMethods
2009-06-10 16:42 1016Top/Bottom操作 适用场景:适量的取出自己想要的 ... -
LINQ to SQL语句(8)之Concat/Union/Intersect/Except
2009-06-10 16:41 1043Concat/Union/Intersect/Ex ... -
LINQ to SQL语句(7)之Exists/In/Any/All/Contains
2009-06-10 16:39 1402Exists/In/Any/All/Contains操 ... -
LINQ to SQL语句(6)之Group By/Having
2009-06-10 16:38 1083Group By/Having操作符 适用场景:分组 ...
相关推荐
2. LINQ to SQL语句之Select/Distinct:Select语句用于选择数据源中满足条件的字段或数据。Distinct语句用于去除重复的数据项。在Select/Distinct的使用中,我们可以看到简单用法、匿名类型形式、条件形式、指定类型...
二、 Linq to SQL 语句(2)之 Select/Distinct Select 子句是 Linq to SQL 语句中用于选择数据记录的子句。Select 子句可以使用多种形式,包括简单用法、匿名类型形式、条件形式、指定类型形式、筛选形式、shaped ...
LINQ to SQL语句(1)之Where LINQ to SQL语句(2)之Select/Distinct LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg LINQ to SQL语句(4)之Join
它提供了将数据库表映射到.NET Framework中类的能力,允许开发人员通过编写LINQ查询而不是SQL语句来操作数据。 #### 二、LINQ to SQL 的基本概念 - **数据上下文(DataContext)**:用于连接数据库并管理对数据库...
### LINQ to SQL语法及实例详解 ...以上是LINQ to SQL中关于Where和Select/Distinct操作的一些基本概念和示例。掌握这些操作可以帮助开发者更高效地处理数据库查询,从而提高应用程序的性能和可维护性。
在LINQ to SQL中,这些表达式树会被转换成对应的SQL语句,然后发送到数据库执行。 **关于LINQ的技巧和好处** - 提高代码可读性和可维护性:查询表达式更接近SQL的自然语法,使得代码更容易理解。 - 强类型检查:...
### LINQ to SQL 语句(2) - Select/Distinct **Select** 用于指定查询结果的形状,可以返回新的对象实例或匿名类型。 1. **简单用法**: ```csharp var names = from customer in customers select customer....
**LINQ to SQL**是Microsoft .NET Framework中的一个组件,它提供了一种将数据从数据库映射到内存中的对象的方式,允许开发人员使用面向对象的编程语言(如C#或VB.NET)来操作数据库,而无需编写SQL语句。...
通过本文介绍,我们详细了解了 LINQ to SQL 中的 Where 子句和 Select / Distinct 操作符的使用方法。这些概念和技巧对于编写高效、易于维护的数据库查询代码至关重要。理解并掌握这些知识可以帮助开发者更好地利用 ...
5. `DataContext` 类:它是 LINQ to SQL 的核心,负责将 LINQ 查询转换为 SQL 语句,与数据库交互,并处理数据的读写操作。 6. 实体类:在 LINQ to SQL 中,数据表通常映射为 C# 类,如 `Customers`、`Orders` 等。...
`select`关键字在Linq to SQL中用来定义查询结果的形状。你可以选择返回整个对象、对象的部分属性或者创建匿名类型。例如,`from customer in Customers select customer.Name`将返回一个只包含客户名称的序列。 **...
LINQ to SQL的工作原理是将C#或VB.NET的查询表达式转换为SQL语句,然后执行这些SQL语句以与数据库进行交互。这种类型的ORM(对象关系映射)框架允许开发者使用面向对象的编程方式来操作数据库,避免了传统的ADO.NET...
LINQ to SQL 语句(2) - Select/Distinct** `Select` 用于转换查询结果,`Distinct` 用于去除重复项。 #### 2.1 简单用法: ```csharp var names = from customer in customers select customer.Name; ``` 这将...
SQL中的`SELECT`语句用于选取数据表中的列或组合列。在Lambda LINQ中,这对应于`.Select()`方法。例如: ```csharp // SQL: SELECT * FROM HumanResources.Employee var allEmployees = Employees.Select(e => e...
LINQ to SQL 语句(2) - Select/Distinct** - **简单用法**:`Select`用于投影数据,将源数据转换为新的形式。例如: ```csharp var names = from customer in Customers select customer.Name; ``` - **匿名类型...