专栏首页张善友的专栏LINQ via C# 系列文章

LINQ via C# 系列文章

LINQ via C#

Recently I am giving a series of talk on LINQ. the name “LINQ via C#” is copied from “ CLR via C# ”, one of my favorite books. Currently part 1 – 8 are finished, and the entire series should be 10 parts. The contents are: Introducing LINQ What Is LINQ 

LINQ via C# Events Posters Design

10 LINQ via C# events have been held successfully. Each event is a pure English speaking technical talk. I designed some posters for the events, with no enough time to design for each event. LINQ via C# part 4 In part 3, lambda expression of C# is introduced...

Introducing LINQ (1) What Is LINQ

[ LINQ via C# series ] This LINQ series is from my 10 parts of LINQ via C# talks . And the poster designs for the events are here . What is LINQ Here is the roadmap of .NET and C#: Date .NET Framework CLR C# IDE Introduced Features February 13th, 2002...

Introducing LINQ (2) Advancements Overview

[ LINQ via C# series ] According to MSDN : LINQ is one of Microsoft’s most exciting, powerful new development technologies. Independent to data source This sample mentioned in part 1 is working on items in a .NET array: var results = from number in source...

Understanding C# 3.0 Features (1) Automatic Property

[ LINQ via C# series ] As the fundamental of LINQ, This chapter will explain the new language features of C# 3.0, all of which are syntactic sugars. This part is about the automatic property. In C# 2.0 a property can be declared like this: public class...  

Understanding C# 3.0 Features (2) Object Initializer And Collection Initializer

[ LINQ via C# series ] Take this Person type as an example: public class Person { public string Name { get ; set ; } public int Age { get ; set ; } } Object initializer In C# 2.0 we create an Person instance and initialize it like this: Person person...

Understanding C# 3.0   Features (3) Type Inference

[ LINQ via C# series ] The “var” keyword has been introduced from the beginning . It is a new language feature called type inference in C# 3.0. Local variable type inference Consider the local variable declaration and initialization: TypeName a = b; Since...

Understanding C# 3.0 Features (4) Anonymous Type

[ LINQ via C# series ] This feature provides a way to create an instance without declare the type: var mark = new { Name = "Mark" , Age = 18 }; Since the type name is unknown at this time when writing code, this is called a anonymous type. Compilation...

Understanding C# 3.0 Features (5) Extension Method

[ LINQ via C# series ] Extension method is a fancy and powerful syntactic sugar in C# 3.0. Extension methods are very important when writing functional style C# code. Define an extension method for a class When we define an extension method for a type...

Understanding C# 3.0 Features (6) Lambda Expression

[ LINQ via C# series ] Lambda expression is another powerful syntactic sugar making C# functional. In this post, “Lambda expression” simply means “C# Lambda expression”. The native concept of lambda expression will be introduced in the later lambda calculus...

Understanding C# 3.0 Features (7) Query Expression

[ LINQ via C# series ] This kind of code has been introduced again and again: var positive = from number in source where number > 0 orderby number descending select number.ToString( CultureInfo .InvariantCulture); This is called the query expression...

Understanding C# 3.0 Features (8) Partial Method

[ LINQ via C# series ] The is a very simple feature. From partial class to partial method Partial class is introduced by C# 2.0. With the partial keyword, the definition of one type is able to be divided into several files. For example, if creating a...

Understanding LINQ to Objects (1) Programming Paradigm

[ LINQ via C# series ] Declarative vs. imperative This post mentioned that LINQ introduced new programming constructs to C#. Take a look at the samples in the beginning post : int [] source = new int [] { 0, -5, 12, -54, 5, -67, 3, 6 }; List < int...

Understanding LINQ to Objects (2) Method Chaining

[ LINQ via C# series ] It is obvious the Where(), OrderBy(), Select() can be invoked fluently: int [] source = new int [] { 0, 1, -2, 3, 24, 6, 3 }; var results = source.Where(item => item > 0 && item < 10) .OrderBy(item => item) ...

Understanding LINQ to Objects (3) Query Methods

[ LINQ via C# series ] After understanding the programming paradigm and why LINQ query methods can be chaining , this post shows the details of LINQ query methods. Methods like Where(), OrderBy(), OrderByDescending(), and Select() are exhibited again...

Understanding LINQ to Objects (4) Iterator Pattern

[ LINQ via C# series ] According to Wikipedia : Iterator pattern is a design pattern in which iterators are used to access the elements of an aggregate object sequentially without exposing its underlying representation. An Iterator object encapsulates...

Understanding LINQ to Objects (5) Implementing Iterator

[ LINQ via C# series ] Iterator pattern is the core pattern of LINQ to Objects implementation. To filter, order, or project the data items of a data collection, of course the code need to go through the collection and figure out the results. The previous...

Understanding LINQ to Objects (6) Deferred Execution

[ LINQ via C# series ] One post at the beginning of this series mentioned that deferred execution is a important advancement of LINQ. The following code show how is the execution deferred: IEnumerable < int > source = Enumerable .Range(-2, 5); ...

Understanding LINQ to Objects (7) Query Methods Internals

[ LINQ via C# series ] This post explains how are the LINQ to Objects standard query methods implemented. Once again, it will be exhibited that iterator pattern is the core pattern of LINQ to Objects query. The first thing need to emphasize is, not all...

Understanding LINQ to Objects (8) The Design Of IEnumerable<T>

[ LINQ via C# series ] Currently in .NET, iterator pattern is implemented via IEnumerable<T> and IEnumerator<T> (or IEnumerable and IEnumerator): namespace System.Collections { // Represents a collection which can be iterated. public interface...

Understanding LINQ to SQL (1) Object-Relational Mapping

[ LINQ via C# series ] According to Wikipedia , Object-relational mapping is: a programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages. This is the LINQ to SQL sample...

Understanding LINQ to SQL (2) IQueryable<T>

[ LINQ via C# series ] The core of LINQ to Objects is IEnumerable<T>: Query methods are designed for IEnumerable<T> as extension methods , like Where(), Select(), etc.; Query methods are designed to be fluent, LINQ to Objects queries can be...

Understanding LINQ to SQL (3) Expression Tree

[ LINQ via C# series ] In LINQ to Objects, lamda expressions are used everywhere as anonymous method, like Where(): public static IEnumerable <TSource> Where<TSource>( this IEnumerable <TSource> source, Func <TSource, bool > predicate...

Understanding LINQ to SQL (4) Data Retrieving Via Query Methods

[ LINQ via C# series ] After understanding: object model generating from SQL Server schema query method chaining on IQueryable<T> SQL are translated from expression tree, which is required by IQueryable<T> now it is time to take a deeper look...

Understanding LINQ to SQL (5) Remote And Local Method Call

[ LINQ via C# series ] Since LINQ to SQL is translating C# methods into SQL, all the C# methods are required to make sense in SQL. According to MSDN : A local method call is one that is executed within the object model. A remote method call is one that...

Understanding LINQ to SQL (6) Working With Deferred Execution

[ LINQ via C# series ] Similar with LINQ to Objects, LINQ to SQL supports deferred execution when possible. For example: using ( NorthwindDataContext database = new NorthwindDataContext ()) { IQueryable < Category > source = database.Categories;...

Understanding LINQ to SQL (7) Data Changing

[ LINQ via C# series ] After understanding how to retrieve data with LINQ to SQL, now take a look at data change (create (insert) / update / delete). Object Identity When changing data queried by LINQ to SQL, one common confusion for LINQ to SQL beginners...

Understanding LINQ to SQL (8) Transaction

[ LINQ via C# series ] Database data Changing cannot be talked about without transactions . Implementing TRANSACTION (BEGIN / COMMIT / ROLLBACK) The previous post has shown that, when invoking SubmitChanges(), the translated SQL (INSERT / UPDATE / DELETE...

Understanding LINQ to SQL (9) Concurrent Conflict

[ LINQ via C# series ] Conflicts are very common when concurrently accessing the same data. Conflicts in concurrent data access The following code presents the concurrent conflict scenario: Action < int , Action < Category >> updateCategory...

Understanding LINQ to SQL (10) Implementing LINQ to SQL Provider

[ LINQ via C# series ] So far LINQ to SQL data CRUD (Creating / Retrieving / Updating / Deleting) has been explained. This post takes a deeper look at the internal implementation of LINQ to SQL query. The provider model Unlike IEnumerable / IEnumerable<T>...

Understanding LINQ to SQL (11) Performance

[ LINQ via C# series ] LINQ to SQL has a lot of great features like strong typing query compilation deferred execution declarative paradigm etc., which are very productive. Of course, these cannot be free, and one price is the performance. O/R mapping...

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CentOS 7 安装RabbitMQ 3.3

    1、安装erlang 语言环境 安装依赖文件 #yum install ncurses-devel 进入 http://www.erlang.org/downl...

    张善友
  • 微软推出SQL Server 2005 Report Packs

    微软推出八个SQL Server 2005 报表类型,包括了: SQL Server 2005 Report Pack for SQL Server Integ...

    张善友
  • http响应Last-Modified和ETag以及asp.net web api实现

    基础知识 1) 什么是”Last-Modified”? 在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Las...

    张善友
  • C++核心准则C.127:包含虚函数的类应该有虚析构函数或保护析构函数‍

    C.127: A class with a virtual function should have a virtual or protected destru...

    面向对象思考
  • Deploy Using Travis-CI And Github Webhook — webpack doc as an example

    Overview Some friends and I have been running webpack-china for a few months. A...

    李成熙heyli
  • LINQ初步

    语言集查询(Language Integrated Query, LINQ)集成了C#编程语言中的查询语法,可以用同样的语法访问不同的数据源。LINQ提供了不同...

    卡尔曼和玻尔兹曼谁曼
  • 滴滴、摩拜和ofo纷纷加码,为何共享电单车市场却起不来?

    10月29日,据新京报报道,ofo小黄车的国内的运营主体东峡大通(北京)已经完成了电单车的专利申请,该专利名称为“电单车的车速控制方法、系统及电单车”,主要解决...

    罗超频道
  • 一个初学者的SAP Cloud Platform学习笔记

    956我为什么没办法publish 到cloud 上去? 1004可能我有个工具没装。新Eclipse还是需要配proxy Possible hint: h...

    Jerry Wang
  • .NET中数据访问方式(一):LINQ

    语言集成查询(Language-Integrated Query),简称LINQ,.NET中的LINQ体系如下图所示:

    雪飞鸿
  • docker安装服务

    2、docker run --name mynginx -d nginx: 运行nginx实例

    爱撒谎的男孩

作者介绍

张善友
  • 腾讯云 TVP 成员

深圳市友浩达科技有限公司CTO

深圳市友浩达科技有限公司 · CTO (已认证)

精选专题

活动推荐

扫码关注云+社区

领取腾讯云代金券