Entity framework 與 LINQ

  • View
    1.665

  • Download
    1

  • Category

    Software

Preview:

Citation preview

課程《Entity Framework 開發實務》

康廷數位 www.kangting.tw 1

LINQ 整合入門

課程需具備基礎能力

入門 C# 語法

Entity Framework 基礎知識

康廷數位 www.kangting.tw 2

DbSet 與 LINQ

public abstract class DbSet : DbQuery

public abstract class DbQuery :

IOrderedQueryable,

IQueryable,

IEnumerable,

IListSource,

IDbAsyncEnumerable

康廷數位 www.kangting.tw 3

LINQ select 敘述

IEnumerable<Product> products =

from product in model.Products

select product;

康廷數位 www.kangting.tw 4

LINQ select 敘述

IEnumerable<Product> products =

from product in model.Products

select product;

康廷數位 www.kangting.tw 5

Id Name Price

1001 商品 A 100

1002 商品 B 200

1003 商品 C 1300

… … …

… … …

n 商品 N price

LINQ select 敘述

IEnumerable<Product> products =

from product in model.Products

select product;

康廷數位 www.kangting.tw 6

Id Name Price

1001 商品 A 100

1002 商品 B 200

1003 商品 C 1300

… … …

… … …

n 商品 N price

select

LINQ select 敘述

IEnumerable<Product> products =

from product in model.Products

select product;

康廷數位 www.kangting.tw 7

Id Name Price

1001 商品 A 100

1002 商品 B 200

1003 商品 C 1300

… … …

… … …

n 商品 N price

select select select

select

select

LINQ where 敘述

IEnumerable<Product> products =

from product in model.Products

select product;

康廷數位 www.kangting.tw 8

Id Name Price

1001 商品 A 100

1002 商品 B 200

1003 商品 C 1300

… … …

… … …

n 商品 N price

LINQ where 敘述

IEnumerable<Product> products =

from product in model.Products

where product.Price > 1000

select product;

康廷數位 www.kangting.tw 9

Id Name Price

1001 商品 A 100

1002 商品 B 200

1003 商品 C 1300

… … …

… … …

n 商品 N price

LINQ orderby 敘述

IEnumerable<Product> products =

from product in model.Products

orderby product.Id

select product;

康廷數位 www.kangting.tw 10

Id Name Price

1001 商品 A 100

1002 商品 B 200

1003 商品 C 1300

… … …

… … …

n 商品 N price

LINQ orderby–descending 敘述

IEnumerable<Product> products =

from product in model.Products

orderby product.Id descending

select product;

康廷數位 www.kangting.tw 11

Id Name Price

n 商品 N price

… … …

… … …

1003 商品 C 1300

1002 商品 B 200

1001 商品 A 100

LINQ group 敘述

IEnumerable<Product> products =

from product in model.Products

select product;

康廷數位 www.kangting.tw 12

Id Name Price Category

1001 商品 A 100 CatA

1002 商品 B 200 CatA

1003 商品 C 1300 CatB

… … …

… … …

n 商品 N price CatB

LINQ group 敘述

IEnumerable<Product> products =

from product in model.Products

group product by product.Category ;

康廷數位 www.kangting.tw 13

Id Name Price Category

1001 商品 A 100 CatA

1002 商品 B 200 CatA

1003 商品 C 1300 CatB

… … …

… … …

n 商品 N price CatB key:CatB

key:CatA

LINQ select 敘述

IEnumerable<Product> products =

from product in model.Products

select product;

康廷數位 www.kangting.tw 14

LINQ select 轉換

IEnumerable<Product> products =

from product in model.Products

select product;

康廷數位 www.kangting.tw 15

class XProduct

{

public string Id { get; set; }

public string Name { get; set; }

public int Price { get; set; }

public double SPrice { get; set; }

}

LINQ select 敘述

IEnumerable<Product> products =

from product in model.Products

select new XProduct()

{

Id = id,

Name = name,

Price = price,

SPrice = sPrice

};

康廷數位 www.kangting.tw 16

LINQ select 敘述

康廷數位 www.kangting.tw 17

Id Name Price

1001 商品 A 100

1002 商品 B 200

1003 商品 C 1300

… … …

… … …

n 商品 N price

Id Name Price SPrice

1001 商品 A 100 特價

1002 商品 B 200 特價

1003 商品 C 1300 特價

… … … …

… … … …

n 商品 N price 特價

《Entity Framework 開發實務》

康廷數位 www.kangting.tw 18