[C#] 初探Entity Framework (四) – Select

這篇文章將介紹如何從Entities進行查詢動作

首先可以參考David.Net的文章
ADO.Net Entity Framework : (十八) 介紹 EF 提供的三種查詢方式
其中介紹了LinqLambda的查詢寫法

我是習慣使用Lambda的寫法,也覺得較為簡潔
以下進行簡單的範例介紹

範例將使用Northwind中的Table:Employees,如下圖

2016-3-1 下午 04-42-54

(使用Lambda語法前,請記得using System.Linq;)



範例1:取得所有項目

        private void SelectAll(NorthwindEntities ef)
        {
            var result = ef.Employees.Select(x => x);            
        }

是的,您沒看錯,只需要一行就解決
這樣就取得了資料庫中Employees中的所有內容

下一步我會把語法蜜糖var給修掉,加強可讀性
(滑鼠移上去就能看到目前的型態)

        private void SelectAll(NorthwindEntities ef)
        {
            IQueryable<Employees> result = ef.Employees.Select(x => x);            
        }

再來驗證一下結果吧
foreach把 EmployeeID, LastName, FirstName三個欄位吐出來

 private void SelectAll(NorthwindEntities ef)
        {
            IQueryable<Employees> result = ef.Employees.Select(x => x);
            foreach (Employees em in result)
            {
                Console.WriteLine(em.EmployeeID + "," + em.LastName + " " + em.FirstName);
            }
        }

結果如下,完成。
2016-3-1 下午 04-38-49.png


範例2:取得特定項目 (Where)

這次試著取得Country = USA的項目,並且只取用FirstName的部分
順便再轉成List<string>的型態
程式碼如下

   private void SelectUSA(NorthwindEntities ef)
        {
            List<string> result = ef.Employees.Where(x => x.Country == "USA")
                                              .Select(x => x.FirstName).ToList();
            foreach (string name in result)
            {
                Console.WriteLine(name);
            }
        }

結果如下,可以和上面第一張表對照

2016-3-1 下午 04-57-06


 

Select的範例介紹到這邊
另外在查詢語法也有Distinct, First (or Default), Join, ToArray……等其他常用的語法
請再依需求搭配使用囉!

 

下一篇:[C#] 初探Entity Framework (五) – Join Table

廣告

2 thoughts on “[C#] 初探Entity Framework (四) – Select

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s