LINQ to SQL 資料庫與LINQ物件的關係

2021-09-11 03:32:32 字數 1929 閱讀 9600

linq的優點是提供了在**中使用強型別化物件,這些物件還對映到以後的資料庫物件上

下面是資料庫物件和linq物件的對映關係

資料庫物件linq物件

資料庫datacontext

錶類和集合

檢視類和集合列屬性

關係巢狀集合

儲存過程

方法 左列是資料庫,資料庫是乙個完整的實體--表、檢視、觸發器、儲存過曾構成了資料庫

右列是linq物件

datacontext物件,他繫結到資料庫上,為了與資料庫進行必要的互動操作,該物件包含乙個連線字串,並管理所發生的所有事物的處理,還負責記錄操作,管理資料的輸出。data物件全面管理與資料庫的事務處理。

資料庫關係,各個物件之間對映的巢狀集合。

儲存過程,會對映為datacontext例項的方法上

在呼叫乙個linq查詢 dc.products 的時候

查詢會被linq to sql 轉換成為sql查詢語句,提供給資料庫,linq to sql 層通過這個查詢從資料庫中獲得行資料,把返回的資料程式設計強力型物件集合,便於使用。

datacontext物件管理所發生的所有事物的處理,並提供操作介面

例項化datacontext物件有三個可選引數(資料名,連線串,另乙個datacontext物件)

1.使用executequery,查詢所有產品集合

public void usingexecutequery()

}

如果想要新增引數的查詢可以使用以下佔位符的形式

ienumerable

myproducts = dc.executequery("select * from products where unitsinstock > ", 50);

2.connection 屬性 返回乙個 system.data.sqlclient.sqlconnection例項

public void connection()

3.transaction 屬性

如果有乙個可以使用的ado.net 事物,就可以使用transaction 屬性把這個事務處理賦予datacontext物件例項。 還可以像下面是用 transactionscope 實現事務,如果資料庫操作失敗,就回退所有操作,返回最初狀態

public void transaction()

;//插入這個產品,並且獲得插入後的p1資訊

dc.products.insertonsubmit(p1);

products p2 = new

products() ;

dc.products.insertonsubmit(p2);

trycatch (exception ex)

//指示操作以完成

myscope.complete();

}

4.datacontext 其他的方法和屬性

方法:

屬性:

table物件表示在資料庫中操作的表,資料庫中的表都會表示成table的例項,比如之前的product可以表示成table,有許多方法是可以用於table物件,其中一些如下:

編輯收藏

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...

Linq to Sql實體對映到資料庫很方便

在nhibernate中我們可以先寫好實體類,然後根據配置檔案生成資料庫,這是非常oo的思維。在物件導向的開發設計中,只有那些需要持久的類最終才會儲存到資料庫中。由於需求的變化,可能會引起類的變動,而且這種變化是常見的 正常的,最後類的儲存也是要發生變化的,這樣首先設計好資料庫反而不方便,也沒有必要...