LinQ实战学习笔记(一) LINQ to (Objects, XML, SQL) 入门初步
2016-08-25 15:08
435 查看
LINQ对于笔者来说, 优美而浓缩的代码让人震惊. 研究LINQ就是在艺术化自己的代码.
之前只是走马观花学会了基本的语法, 但是经常在CSDN看到令人惊讶自叹不如的LINQ代码, 还是让人羡慕嫉妒恨, 真有一种心血来潮想追赶的冲动.
所以, 还是决定系统的学习一下LINQ.
(1.4) LINQ to Objects
这是一个简单的hello world性质的例子.
结果如下图:
现在, 对于List<>进行数据处理, 我就只用 LINQ to Objects了.
(1.5) LINQ to XML 初步
上代码:
结果如下图:
看上去LINQ to XML从表达上比DOM更加形象.这代码和它生成的XML结构基本上是"所见即所得"的.
另外, LINQ to XML是以元素为中心的, 而DOM是以文档为中心的.
(1.6) LINQ to SQL
下面的代码的几点说明:
1. 首先需要定义一个实体类, 用以和Northwind数据的Contacts数据表关联起来.
本文所用的Northwind数据是微软提供演示的, 你可以自己去下. 也可以自己创建一个.
2. 自定义属性 [Table(Name = "Contacts")], 这个你得引入System.data.linq, 否则你懂的.
3. 自定义属性 [Column(Name = "Name")], 在代码中用于定义与数据表中列的对应关系.
4. DataContext是设备上下文, 你肯定知道是用来传入连接字符串的
5. 连接字符串中的 security=SSPI 使用windows自带的安全验证机制, 不用输入用户名与密码.
6. DataContext.GetTable<>, 这个是泛型的, 注意到没有? 允许你操作强类型对象.
结果如下图:
这个效果, 真是颠覆了我对关系数据库操作认知!
下面的事, 都被LINQ承包了:
打开数据库连接
生成SQL查询
执行SQL查询
将执行结果填充至对象中
原创文章,出自"博客园, 猪悟能'S博客" : http://www.cnblogs.com/hackpig/
之前只是走马观花学会了基本的语法, 但是经常在CSDN看到令人惊讶自叹不如的LINQ代码, 还是让人羡慕嫉妒恨, 真有一种心血来潮想追赶的冲动.
所以, 还是决定系统的学习一下LINQ.
(1.4) LINQ to Objects
这是一个简单的hello world性质的例子.
var words = new List<string>() { "hello", "wonderful","linq","beautiful","world"}; var res = from s in words where s.Length <= 5 select s; Console.WriteLine("输出串长度<=5的单词:" + Environment.NewLine); foreach (var m in res) { Console.WriteLine(m); } //按字母顺序对一个单词进行排序,然后按照其长度进行分组,并按照其中包含的单词长度逆序排列各组. Console.WriteLine(Environment.NewLine + "按长度分组排序显示:" + Environment.NewLine); var res1 = from s in words orderby s ascending //ascending升序 group s by s.Length into lengroup orderby lengroup.Key descending //descending降序 select new { Length = lengroup.Key, Words = lengroup }; foreach (var m in res1) { Console.WriteLine("单词长度:" + m.Length); foreach (var str in m.Words) Console.WriteLine(" " + str); }
结果如下图:
现在, 对于List<>进行数据处理, 我就只用 LINQ to Objects了.
(1.5) LINQ to XML 初步
上代码:
class Book { public string Publisher; public string Title; public int Year; public Book(string title, string publisher, int year) { this.Title = title; this.Publisher = publisher; this.Year = year; } }
Book[] books = new Book[]{ new Book("Ajax in Action","Manning",2005), new Book("Windows Froms in Action","Manning",2006), new Book("Rss and Atom in Action","Manning",2006) }; XElement xml = new XElement("books", from s in books where s.Year == 2006 select new XElement("book", new XAttribute("title", s.Title), new XElement("publisher", s.Publisher) )); Console.WriteLine(xml);
结果如下图:
看上去LINQ to XML从表达上比DOM更加形象.这代码和它生成的XML结构基本上是"所见即所得"的.
另外, LINQ to XML是以元素为中心的, 而DOM是以文档为中心的.
(1.6) LINQ to SQL
下面的代码的几点说明:
1. 首先需要定义一个实体类, 用以和Northwind数据的Contacts数据表关联起来.
本文所用的Northwind数据是微软提供演示的, 你可以自己去下. 也可以自己创建一个.
2. 自定义属性 [Table(Name = "Contacts")], 这个你得引入System.data.linq, 否则你懂的.
3. 自定义属性 [Column(Name = "Name")], 在代码中用于定义与数据表中列的对应关系.
static class HelloLinqToSql { [Table(Name = "Contacts")] public class Contact { [Column(IsPrimaryKey = true)] public int ContactID { get; set; } [Column(Name = "Name")] public string Name { get; set; } [Column] public string City { get; set; } } }
4. DataContext是设备上下文, 你肯定知道是用来传入连接字符串的
5. 连接字符串中的 security=SSPI 使用windows自带的安全验证机制, 不用输入用户名与密码.
6. DataContext.GetTable<>, 这个是泛型的, 注意到没有? 允许你操作强类型对象.
DataContext db = new DataContext(@"server=(local);integrated security=SSPI;database=Northwind"); var contacts = from contact in db.GetTable<HelloLinqToSql.Contact>() where contact.City == "武汉" select contact; Console.WriteLine("查找在武汉的联系人"+Environment.NewLine); foreach (var contact in contacts) Console.WriteLine("联系人: " + contact.Name.Trim()+" ID:"+contact.ContactID);
结果如下图:
这个效果, 真是颠覆了我对关系数据库操作认知!
下面的事, 都被LINQ承包了:
打开数据库连接
生成SQL查询
执行SQL查询
将执行结果填充至对象中
原创文章,出自"博客园, 猪悟能'S博客" : http://www.cnblogs.com/hackpig/
相关文章推荐
- JSTL 入门: 访问SQL和XML内容
- LINQ to Objects / LINQ to SQL / LINQ to XML 示例程序下载
- sql xml 入门
- MyBatis 入门到精通(二) SQL语句映射XML文件
- 入门---1.1: 从XML中创建SqlSessionFactory
- JSTL 入门,第4部分: 访问SQL和XML内容
- SQL Server XML 入门 基础
- sql xml 入门
- sql xml 初步判断xml格式是否正确
- [SQL入门级] 第一天 SQL初步
- 18句话入门SQLServer XML
- sql xml 入门:
- 入门SQLServer XML查询18句话
- sql xml 入门
- SQLServer XML查询快速入门(18句话)
- 18句话入门SQLServer XML
- 18句话入门SQLServer XML
- 18句话入门SQLServer XML
- sql xml 入门
- sql xml 入门