不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
sql和linq转换示例
编辑:dnawo 日期:2013-02-22
1.查询
sql:
linq(查询语法):
linq(方法语法):
2.排序
sql:
linq(查询语法):
linq(方法语法):
3.分组
sql:
linq(查询语法):
linq(方法语法):
4.连接
sql:
linq(查询语法):
linq(方法语法):
5.左连接
sql:
linq(查询语法):
linq(方法语法):
sql:
复制内容到剪贴板
程序代码

select id from person where id>1
linq(查询语法):
复制内容到剪贴板
程序代码

var data = from person in context.People
where person.Id > 1
select new { Id = person.Id };
where person.Id > 1
select new { Id = person.Id };
linq(方法语法):
复制内容到剪贴板
程序代码

var data = context.People.Where(person => person.Id > 1).Select(person => new { Id = person.Id });
2.排序
sql:
复制内容到剪贴板
程序代码

select id,name from person order by name asc, id desc
linq(查询语法):
复制内容到剪贴板
程序代码

var data = from person in context.People
orderby person.Name ascending, person.Id descending
select person;
orderby person.Name ascending, person.Id descending
select person;
linq(方法语法):
复制内容到剪贴板
程序代码

var data = context.People.OrderBy(person => person.Name).ThenByDescending(person => person.Id);
3.分组
sql:
复制内容到剪贴板
程序代码

select name from person group by name,age having count(*)>=1 order by count(*) desc
linq(查询语法):
复制内容到剪贴板
程序代码

var data = from person in context.People
group person by new { person.Name, person.Age } into g
where g.Count() >= 1
orderby g.Count() descending
select g.Key;
group person by new { person.Name, person.Age } into g
where g.Count() >= 1
orderby g.Count() descending
select g.Key;
linq(方法语法):
复制内容到剪贴板
程序代码

var data = context.People.GroupBy(person => new { person.Name, person.Age }).Where(g => g.Count() >= 1).OrderByDescending(g => g.Count()).Select(g => g.Key);
4.连接
sql:
复制内容到剪贴板
程序代码

select a.name,b.name from person a inner join pet b on a.id=b.pid
linq(查询语法):
复制内容到剪贴板
程序代码

var data = from person in context.People
join pet in context.Pets on person.Id equals pet.Pid
select new { Name1 = person.Name, Name2 = pet.Name };
//or
var data = from person in context.People
let pets = person.Pets
from pet in pets
select new { Name1 = person.Name, Name2 = pet.Name };
join pet in context.Pets on person.Id equals pet.Pid
select new { Name1 = person.Name, Name2 = pet.Name };
//or
var data = from person in context.People
let pets = person.Pets
from pet in pets
select new { Name1 = person.Name, Name2 = pet.Name };
linq(方法语法):
复制内容到剪贴板
程序代码

var data = context.People.Join(context.Pets, person => person.Id, pet => pet.Pid, (person, pet) => new { Name1 = person.Name, Name2 = pet.Name });
//or
var data = context.People.SelectMany(person => person.Pets, (person, pet) => new { Name1 = person.Name, Name2 = pet.Name });
//or
var data = context.People.SelectMany(person => person.Pets, (person, pet) => new { Name1 = person.Name, Name2 = pet.Name });
5.左连接
sql:
复制内容到剪贴板
程序代码

select a.name,isnull(b.name,'-') from person a left join pet b on a.id=b.pid
linq(查询语法):
复制内容到剪贴板
程序代码

var data = from person in context.People
join pet in context.Pets on person.Id equals pet.Pid into pets
from item in pets.DefaultIfEmpty()
select new { Name1 = person.Name, Name2 = item == null ? "-" : item.Name };
join pet in context.Pets on person.Id equals pet.Pid into pets
from item in pets.DefaultIfEmpty()
select new { Name1 = person.Name, Name2 = item == null ? "-" : item.Name };
linq(方法语法):
复制内容到剪贴板
程序代码

var data = context.People.GroupJoin(context.Pets, person => person.Id, pet => pet.Pid, (person, pets) => new { person = person, pets = pets }).SelectMany(item => item.pets.DefaultIfEmpty(), (item, pet) => new { Name1 = item.person.Name, Name2 = pet == null ? "-" : pet.Name });
评论: 0 | 引用: 0 | 查看次数: 3524
发表评论
请登录后再发表评论!