Linq To Sql的各种查询

一、Inner Join

//request为查询条件

var result = from a in db.TableA

join b in db.TableB

on a.ID equals b.ID

where a.UserName == request.UserName || a.Mobile == request.Mobile

select new ResponseInfo

{

UserName = ui.UserName,

UserID = ui.ID,

Mobile = ui.Mobile,

Value = ue.Value

};

二、Left  Join

//request为查询条件

var result = from si in db.TableA

join ai in db.TableB on si.UserID equals ai.ID into ljTableB

from ai in ljTableB.DefaultIfEmpty()

join pi in db.TableC on si.ProductID equals pi.ID into ljTableC

from pi in ljTableC.DefaultIfEmpty()

join ps in db.TableD on si.SpecID equals ps.ID into ljTableD

from ps in ljTableD.DefaultIfEmpty()

select new InfoResposne

{

ID = si.ID,

DisplayID = pi.DisplayID,

ProductID = si.ProductID,

ProductName = pi.ProductName,

BarCode = pi.BarCode,

SpecID = si.SpecID,

Created = si.Created

};

二、动态添加查询条件及翻页

//字符串

if (!string.IsNullOrWhiteSpace(request.DisplayID))

{

result = result.Where(p => p.DisplayID == request.DisplayID);

}

//字符串包含

if (!string.IsNullOrWhiteSpace(request.UserName))

{

userInfo = userInfo.Where(p => p.UserName.Contains(request.UserName));

}

//数字、状态类型

if (request.Amount!=null)

{

result = result.Where(p => p.Amount == request.Amount);

}

//时间范围

if (request.StockInStart != null)

{

result = result.Where(p => p.Created >= request.StockInStart);

}

//时间范围

if (request.StockInEnd != null)

{

result = result.Where(p => p.Created <= request.StockInEnd);

}

var response = new LogResponse();

response.TotalCount = result.Count();

response.DataList = result

.OrderByDescending(p => p.Created)

.Skip((request.PageIndex - 1) * request.PageSize)

.Take(request.PageSize)

.ToList();

时间: 2024-11-22 17:13:50

Linq To Sql的各种查询的相关文章

Linq to Sql 多条件查询

Linq To Sql 多条件查询 string proName = this.txtName.Text.Trim();string lowPrice = this.txtLowPrice.Text.Trim();string highPrice = this.txtHighPrice.Text.Trim(); decimal? lowPrice1 = null, highPrice1 = null;if (!string.IsNullOrEmpty(lowPrice)){        low

Webform中linq to sql多条件查询(小练习)

多条件查询:逐条判断,从第一个条件开始判断,如果满足,取出放入集合,再从集合中查询第二个条件... aspx代码: 1 <body> 2 <form id="form1" runat="server"> 3 4 <br /> 5 <asp:Label ID="Label1" runat="server" Text="关键字:"></asp:Label&g

Linq to Sql 左连接查询

1 var query = from t0 in context.ExpressSendMaster 2 join t1 in context.Supplier on t0.SupplierCode equals t1.SupplierCode 3 join t2 in context.ExpressSendPackageRule on t0.AreaId equals t2.Id into t0_join 4 from t0_t2 in t0_join.DefaultIfEmpty() 5 w

LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据 (转)

http://www.cnblogs.com/yukaizhao/archive/2010/05/13/linq_to_sql_1.html LINQ和 LINQ to SQL 都已经不是一个新事物了,但是我接触的比较晚,本着绝知此事要躬行的态度,决定写这个系列. 本文使用的测试环境是VS 2010,和sql server 2005数据库. 1.  从CUD开始,如何使用LINQ  to SQL插入.修改.删除数据 2.  查询 使用LINQ to SQL做简单查询 3.  查询 延迟加载与立即

[译]LINT TO SQL 介绍(数据库查询) - Part.3

出处:Linq To Sql (Part.3 – Querying our database) 术语表 Built-in:内置的 Clause:子句 Debugger:调试器 Object Relational Mapper:对象关系映射器 ORM(Object Relation Mapping):对象关系映射 Visualizer:查看器 plug-in:插件程序 Breakpoint:断点 Shape:构造 object initialization:对象初始化 deferred execu

LINQ to SQL系列四 使用inner join,outer join

先看一个最简单的inner join,在读取Student表时inner join Class表取的对应的Class信息: static void Main(string[] args) { using (var writer = new StreamWriter(WatchSqlPath, false, Encoding.UTF8)) { using (DbAppDataContext db = new DbAppDataContext()) { db.Log = writer; //inne

LinQ to SQL 查询

LINQ to SQL 是将对象关系映射到.NET框架中的一种实现.它可以将关系数据库映射为.NET Framework中的一些类. 然后,开发人员就可以通过使用 LINQ to SQL对数据库中的数据进行查询.修改.插入.删除等操作. LINQ to SQL类映射到SQL Server数据库中的表,这些类被称做“实体类”,实体类中的属性或字段映射到SQL server 数据库中表的列,实体类之间的关联映射到 SQL Server数据库中的外键关系,LINQ to SQL类中的方法映射为SQL

Linq to sql 结合Entity Framework 的连接查询总结

最近在做项目使用linq结合EntityFramework来处理数据库的操作.想来也用了快一年了,发现有些使用技巧是需要注意下,特做下总结,希望对刚入门的朋友们有所帮助.刚开始用的时候各总循环查询子查询,结果性能差得不行,现在看看都觉得好笑.也只有写出过很烂的代码才知道怎么样的代码才是优雅的吧,哈哈.我先总结下连接查询吧,发现很多刚入门的朋友和我一样,不知道怎么用linq写类似与sql的连接查询(left join.inner join等等). 连接查询 内连接查询 linq语法如下: 1 va

20150221&mdash;LINQ to SQL 查询数据

LINQ to SQL 可以快捷的查询基于SQL的数据,直接在VS中包括基本的Object/relation映射器,O/R映射器可以快速的将基于SQL的数据源映射为CLR对象,之后就可以使用LINQ查询. 如下图中,在项目中右键添加--新建项,找到LINQ to SQL类 然后创建新连接,点击连接到数据库: 添加连接 在左侧的服务管理资源中找到需要添加的连接名,表名 将表拖拽到DataClasses1,点击 是 根据需要将需要的表拖拽进来: 拥有主外键关系的表会在其之间有一条虚线.   使用LI