逐步解說:簡單的物件模型和查詢(C#) - ADO.NET
文章推薦指數: 80 %
遵循這個逐步解說,建立在範例資料庫中建立資料表模型的實體類別。
然後建立簡單的查詢, ... 一般來說,您會使用物件關聯式設計工具來建立物件模型。
跳到主要內容
已不再支援此瀏覽器。
請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。
下載MicrosoftEdge
其他資訊
目錄
結束焦點模式
儲存
編輯
共用
Twitter
LinkedIn
Facebook
電子郵件
WeChat
目錄
逐步解說:簡單的物件模型和查詢(C#)
09/27/2021
m
o
S
本文內容
這個逐步解說提供極為簡單的基本端對端LINQtoSQL案例。
您將建立的實體類別會構成Northwind範例資料庫中的Customers資料表。
接著,您會建立簡單查詢,以便列出位於倫敦的客戶。
這個逐步解說的設計是以程式碼為導向,以協助說明LINQtoSQL概念。
一般來說,您會使用物件關聯式設計工具來建立物件模型。
注意
在下列指示的某些VisualStudio使用者介面項目中,您的電腦可能會顯示不同的名稱或位置:您所擁有的VisualStudio版本以及使用的設定會決定這些項目。
如需詳細資訊,請參閱將VisualStudioIDE個人化。
本逐步解說的內容是依據VisualC#開發設定所撰寫的。
必要條件
本逐步解說會使用專用資料夾("c:\linqtest5")來保存檔案。
請先建立這個資料夾,再開始逐步解說。
這個逐步解說需要使用Northwind範例資料庫。
如果您的開發電腦上沒有這個資料庫,則可以從Microsoft下載網站下載。
如需相關指示,請參閱下載範例資料庫。
下載此資料庫之後,請將檔案複製到c:\linqtest5資料夾。
概觀
此逐步解說包含六個主要工作:
LINQtoSQL在VisualStudio中建立方案。
將類別對應至資料庫資料表。
指定類別的屬性以表示資料庫資料表。
指定與Northwind資料庫的連接。
建立要對資料庫執行的簡單查詢。
執行查詢並觀察結果。
建立LINQtoSQL方案
在第一個工作中,您會建立VisualStudio方案,其中包含建立和執行專案所需的參考LINQtoSQL。
若要建立LINQtoSQL方案
在VisualStudio的[檔案]功能表上,指向[新增],然後按一下[Project]。
在[新增Project]對話方塊的[Project類型]窗格中,按一下[Visualc#]。
按一下[範本]窗格中的[主控台應用程式]。
在[名稱]方塊中,輸入LinqConsoleApp。
在[位置]方塊中,確認您要儲存專案檔的位置。
按一下[確定]。
加入LINQ參考和指示詞
本逐步解說使用的組件,可能在您的專案中預設為不安裝。
如果您的專案中未將system.string列為參考(展開[方案總管)中的[參考]節點,然後加以新增,如下列步驟所述。
若要加入System.Data.Linq
在方案總管中,以滑鼠右鍵按一下[參考],然後按一下[加入參考]。
在[加入參考]對話方塊中,按一下[.net],按一下[system.string]元件,然後按一下[確定]。
組件隨即加入至專案。
在Program的頂端新增下列指示詞:
usingSystem.Data.Linq;
usingSystem.Data.Linq.Mapping;
將類別對應至資料庫資料表
在這個步驟中,您會建立類別並將它對應至資料庫資料表。
這類類別稱為「實體類別」(entityclass)。
請注意,只要加入TableAttribute屬性,即可完成對應。
Name屬性會指定資料庫中資料表的名稱。
若要建立實體類別並將它對應至資料庫資料表
在Program.cs中的Program類別宣告正上方輸入或貼上下列程式碼:
[Table(Name="Customers")]
publicclassCustomer
{
}
指定類別的屬性以表示資料庫資料行
在這個步驟中,您會完成下列幾項工作:
您會使用ColumnAttribute屬性(Attribute)指定實體類別的CustomerID和City屬性(Property),以表示資料庫資料表中的資料行。
您會指定CustomerID屬性(Property),以表示資料庫中的主索引鍵資料行。
您會指定_CustomerID和_City欄位做為私用儲存區。
然後,LINQtoSQL可以直接儲存和擷取值,而不必使用可能含有商務邏輯的公用存取子。
若要表示兩個資料庫資料行的特性
在Program.cs中Customer類別的大括號內輸入或貼上列程式碼:
privatestring_CustomerID;
[Column(IsPrimaryKey=true,Storage="_CustomerID")]
publicstringCustomerID
{
get
{
returnthis._CustomerID;
}
set
{
this._CustomerID=value;
}
}
privatestring_City;
[Column(Storage="_City")]
publicstringCity
{
get
{
returnthis._City;
}
set
{
this._City=value;
}
}
指定與Northwind資料庫的連接
在這個步驟中,您會使用DataContext物件,在程式碼架構的資料結構與資料庫本身間建立連接。
DataContext為主要通道,您可透過該通道擷取資料庫中的物件以及送出變更。
您也可以宣告Table
您會在後面幾個步驟中,建立和執行這些查詢。
若要指定資料庫連接
將下列程式碼輸入或貼到Main方法中。
請注意,northwnd.mdf檔案會假設位於linqtest5資料夾中。
如需詳細資訊,請參閱本逐步解說稍早的「必要條件」一節。
//Useaconnectionstring.
DataContextdb=newDataContext
(@"c:\linqtest5\northwnd.mdf");
//Getatypedtabletorunqueries.
Table
這個步驟中的查詢程式碼只會描述查詢,而不會實際執行。
這種方法稱為「延後執行」。
如需詳細資訊,請參閱LINQ查詢簡介(C#)。
此外,您還會產生記錄檔輸出,以顯示LINQtoSQL所產生的SQL命令。
這項記錄功能(其使用Log)有助於進行偵錯,以及判斷要傳送至資料庫的命令是否正確地表示您的查詢。
建立簡單查詢
在Main方法中的Table
//AttachthelogtoshowgeneratedSQL.
db.Log=Console.Out;
//QueryforcustomersinLondon.
IQueryable
而在需要結果時,才會評估您在前面的步驟中建立的查詢運算式。
當您開始foreach反覆運算時,會對資料庫執行SQL命令,並且將物件具體化。
若要執行查詢
在Main方法的尾端輸入或貼上下列程式碼(在查詢描述之後)。
foreach(CustomercustincustQuery)
{
Console.WriteLine("ID={0},City={1}",cust.CustomerID,
cust.City);
}
//Preventconsolewindowfromclosing.
Console.ReadLine();
按F5,進行應用程式偵錯。
注意
如果您的應用程式產生執行階段錯誤,請參閱逐步解說Learning的疑難排解一節。
主控台視窗中的查詢結果應如下所示:
ID=AROUT,City=London
ID=BSBEV,City=London
ID=CONSH,City=London
ID=EASTC,City=London
ID=NORTS,City=London
ID=SEVES,City=London
在主控台視窗中按Enter鍵,以關閉應用程式。
後續步驟
逐步解說:跨關聯性查詢(c#)主題會繼續進行本逐步解說結束的位置。
跨關聯性的查詢逐步解說LINQtoSQL會示範如何跨資料表進行查詢,類似于關係資料庫中的聯結。
如果您想執行<跨關聯性查詢>逐步解說,請務必儲存您剛在本逐步解說完成的方案,這是必要的條件。
另請參閱
依逐步解說學習
此頁面有所助益嗎?
Yes
No
還有其他意見反應嗎?
系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。
隱私權原則。
跳過
送出
謝謝。
此頁面有所助益嗎?
Yes
No
還有其他意見反應嗎?
系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。
隱私權原則。
跳過
送出
謝謝。
本文內容
延伸文章資訊
- 1建立資料集之間的關聯性- Visual Studio
如需有關資料集資料表中更新的詳細資訊,請參閱將資料儲存回資料庫。 僅限條件約束關聯. 當您建立DataRelation 物件時,您可以選擇指定關聯只用來強制執行 ...
- 2使用C# 設計您的第一個關聯式資料庫- Azure SQL Database
Azure SQL Database 是Microsoft Cloud (Azure) 中的關聯式資料庫即服務(DBaaS)。 在本教學課程裡,您將了解如何搭配使用Visual Studio 與...
- 3【C#】連接資料庫實作(MSSQL) | 阿猩的程式蛋糕店 - 點部落
這篇要介紹關聯性資料庫,筆者選用MSSQL作為後續工作使用,筆者試著用簡單的概念來說明,順便作個工作紀錄囉。內容範圍包含: SQL、T-SQL、DBMS、RDB.
- 4逐步解說:簡單的物件模型和查詢(C#) - ADO.NET
遵循這個逐步解說,建立在範例資料庫中建立資料表模型的實體類別。 然後建立簡單的查詢, ... 一般來說,您會使用物件關聯式設計工具來建立物件模型。
- 5逐步解說:操作資料(C#) - ADO.NET
下載資料庫之後,請將northwnd.mdf 檔案複製至c:\linqtest6 資料夾。 會從Northwind 資料庫產生C# 程式碼檔案。 您可以使用物件關聯式設計工具或SQLMetal ...