Linq to Sql 整合資料庫語言查詢之二

2022-03-25 16:28:09 字數 3554 閱讀 1554

linq to sql: 整合資料庫語言查詢之二

步驟 5 – 建立你的物件模型

1. 開啟 data connections樹檢視

2. 展開 northwind資料夾

3. 展開 tables資料夾

4. 在 solution explorer 中雙擊開啟 northwind.dbml 檔案

5. 從 table 資料夾拖拽 customers表到 linq to sql 設計器

6. 從 table 資料夾拖拽orders表到 linq to sql 設計器

7. 從 table 資料夾拖拽 employees表到 linq to sql 設計器

步驟 6 – 查詢你的物件模型

1. 按下 f5以除錯你的程式

正如你所看到的,設計器為你寫下了所有的「plumbing」**。你的主程式果然執行正常!

步驟 7 – 對映乙個儲存過程

我們已經學會怎樣從表對映到物件,以及如何宣告兩個表之間的關聯。現在我們正希望讓您了解怎樣對映乙個資料庫中的儲存過程到我們的物件模型。

1. 開啟 data connections 樹檢視

2. 展開 northwind 資料夾

3. 展開 stored procedures資料夾

4. 在 solution explorer 中雙擊開啟 northwind.dbml 檔案

5. 從 stored procedures資料夾拖拽ten most expensive products到設計器

6. 對您的程式中的 main 方法作出下列修改,使用從設計器建立的物件模型。

sub main()

'如果我們在設計器中儲存了連線字串,那麼將不再需要提供連線字串。

dim db as new northwinddatacontext()

dim q = from customer in db.customers _

where customer.region = nothing _

select customer.contactname

for each cust in q

console.writeline(cust)

next

console.readline()

end sub

7. 按下f5以除錯這個程式

當你輸入了這段**,注意他是這麼工作的,在 ide 中, intellisense將會把你的對映後的儲存過程 ten_most_expensive_products顯示為乙個強型別的 datacontext 中的乙個設計器生成的方法。同樣提示你的,還包括設計器生成的型別ten_most_expensive_product 包含兩個強型別的屬性,它們對映從儲存過程返回的字段。注意,如果你複製並貼上上面的**:簡單地輸入「p.」來觀察我們談論的話題。

步驟 8 – 檢索新的結果集

迄今為止我們已經執行了能夠接受完整物件的查詢。但是我們也可以只查詢需要的屬性,您也可能需要建立復合的查詢。在 traditional sql 中,含有任意列的集合都可以作為結果集返回。在 linq to sql,您可以透過使用匿名型別完成這類任務。

1. 修改main方法中的**,用於建立乙個僅僅接收 contactname 屬性的查詢並顯示:

sub main()

'如果我們在設計器中儲存了連線字串,那麼將不再需要提供連線字串。

dim db as new northwinddatacontext()

dim q = from customer in db.customers _

where customer.region = nothing _

select company = customer.companyname, _

contact = customer.contactname

for each cust in q

console.writeline("/", cust.contact, cust.company)

next

console.readline()

end sub

2. 再次修改這些**,用於建立乙個新的包含我們想得到資料的物件,而後進行輸出:

sub main()

'如果我們在設計器中儲存了連線字串,那麼將不再需要提供連線字串。

dim db as new northwinddatacontext()

dim ids = from customer in db.customers _

from emp in db.employees _

where customer.city = emp.city _

select emp.employeeid _

distinct

for each id in ids

console.writeline(id)

next

console.readline()

end sub

sub main()

'如果我們在設計器中儲存了連線字串,那麼將不再需要提供連線字串。

dim db as new northwinddatacontext()

dim ids = from customer in db.customers _

from emp in db.employees _

where customer.city = emp.city _

select emp.employeeid _

distinct

for each id in ids

console.writeline(id)

next

console.readline()

end sub

3. 按下f5以除錯這個程式

請注意這個操作符執行時沒有相應的型別名稱。原因是編譯器將基於選擇列的名稱與型別,建立乙個新的匿名型別。您同樣需要注意,匿名型別中的成員已經被重新命名為company 與 contact。指定名稱是可選的,預設行為將把它命名為與對映物件中的源欄位名稱一致。最後,當 for each 語法執行時,乙個新型別的例項引用與它的所有型別將可以被訪問。

4. 更改這些文件,完成一項 join 操作:

sub main()

'如果我們在設計器中儲存了連線字串,那麼將不再需要提供連線字串。

dim db as new northwinddatacontext()

dim ids = from customer in db.customers _

from emp in db.employees _

where customer.city = emp.city _

select emp.employeeid _

distinct

for each id in ids

console.writeline(id)

next

console.readline()

end sub

5. 按下f5以除錯整個解決方案

上述示例闡明了當沒有顯式關聯可以導航的情況下,乙個 sql 樣式的 join 同樣可以被使用。它同樣展示了可以僅選定單個特別的屬性可以代替整個物件被傳送到程式中。

Linq to Sql 整合資料庫語言查詢之一

帶您探索 crud 操作 建立,接收,更新與刪除,以及它們怎樣在不使用外部方法的情況下完成 sql查詢或更新。將獲取程式中的實體如何對映至資料庫表,調節對映過程。實驗營 1 linq to sql 整合資料庫語言查詢 這個實驗營將向您清晰地描繪借助於 linq to sql,linq 專案對於關係型...

LINQ to SQL 資料庫連線

首先建立乙個mvc專案 這裡注意如果沒這個包 linq to sql 類 的話,那就是你安裝vs的時候沒有安裝需要去修改找到這個檔案安裝一下 新增之後 就可以開始連線資料庫了 選擇你需要連線的資料庫 然後吧表拖到dbml 然後新增控制器 我在控制器裡寫了乙個方法 例子,這個時候還需要去配置連線字串,...

LinqToSql 建立 刪除 資料庫

linqtosql基礎知識 建立資料庫必須注意一點 就是不能建立乙個空的資料庫,也就是說資料庫中必須最少要有乙個表 例子如 system.data.linq.datacontext ctx new datacontext server database testdb uid sa pwd ctx.c...