• Save
LINQ: How It Works
Upcoming SlideShare
Loading in...5
×
 

LINQ: How It Works

on

  • 1,209 views

Talk for TulaDev.NET User Group

Talk for TulaDev.NET User Group

Language: Russian

Statistics

Views

Total Views
1,209
Views on SlideShare
1,164
Embed Views
45

Actions

Likes
0
Downloads
0
Comments
0

3 Embeds 45

http://tuladev.net 28
http://www.tuladev.net 15
http://localhost:49197 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

LINQ: How It Works LINQ: How It Works Presentation Transcript

  • TulaDev.NET
    LINQ: как это работает
    Те скрытые строки кода, которые позволяют вам писать красиво и элегантно
    Андрей Кулешов
    Codemasters International
    Senior C# Developer, Team Lead
    akuleshov@codereign.net | http://www.codemastersintl.com/Blogs/Andrey-Kuleshov
  • Что будет:
    Синтаксис LINQ
    С какими источниками данных это уже работает?
    Как они это компилируют?
    Как они это выполняют?
    Как мы можем расширитьLINQ на свою систему?
  • Синтаксис языка C#
    Стандартные операторы запросов
    Реализующий запросы фреймворк
  • Как это выглядит
  • Источник
    данных
  • Ссылка на сущность в источнике данных
    Источник
    данных
  • Источник
    данных
    Ссылка на сущность в источнике данных
    Фильтрация и сортировка
  • Источник
    данных
    Ссылка на сущность в источнике данных
    Фильтрация и сортировка
    Преобразование
    данных
  • Как это видит компилятор
  • Как это видит компилятор
  • И что это за метод?
    xs.Where(x => x.Id == 1)
    Queryable.Where(
    xs,
    x => x.Id == 1)
    Enumerable.Where(
    xs,
    x => x.Id == 1)
    delegate(int x) {
    return x.Id == 1;
    }
    Expression.Lambda(
    Expression.Equal(…),
    Expression.Parameter(…)
    )
  • Queryable
    IQueryProvider
    SQL
    Entities
    NHibernate

    Как это выполняется
  • Дерево выражений
    BinaryExpression
    /
    ConstantExpression
    BinaryExpression
    2
    *
    b
    h
    ParameterExpression
    ParameterExpression
  • Как расширить LINQCustom LINQ Extensions
    Extension Methods for LINQ to Objects:LINQ to Xml:IEnumerable<XElement> Descendants();
    Custom Linq To Anything providers:LINQ to TerraServer-USA Web servicehttp://msdn.microsoft.com/en-us/library/bb546158.aspx
  • Вопросы?Внимательно слушаю 
    Андрей Кулешов
    Codemasters International
    Senior C# Developer, Team Lead
    akuleshov@codereign.net | http://www.codemastersintl.com/Blogs/Andrey-Kuleshov
  • Источники
    Programming Microsoft LINQ. Paolo Pialorsi, Marco Russo
    MS TechEd New Zealand session:LINQ Confidential: A Deep Dive Into How LINQ Works by Ivan Towlson http://www.msteched.com/2010/NewZealand/DEV401
    Создание Custom LINQ Providerhttp://msdn.microsoft.com/en-us/library/bb546158.aspx
    Андрей Кулешов
    Codemasters International
    akuleshov@codereign.net | http://www.codemastersintl.com/Blogs/Andrey-Kuleshov