作法:動態建立資料庫- ADO.NET

文章推薦指數: 80 %
投票人數:10人

在LINQ to SQL 中,物件模型(Object Model) 會對應至關聯式資料庫。

對應的啟用方式是使用以屬性(Attribute) 為基礎的對應或外部對應檔案來描述關聯式 ... 跳到主要內容 已不再支援此瀏覽器。

請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。

下載MicrosoftEdge 其他資訊 目錄 結束焦點模式 語言 儲存 編輯 共用 Twitter LinkedIn Facebook 電子郵件 WeChat 目錄 語言 作法:動態建立資料庫 09/27/2021 m o S 本文內容 在LINQtoSQL中,物件模型(ObjectModel)會對應至關聯式資料庫。

對應的啟用方式是使用以屬性(Attribute)為基礎的對應或外部對應檔案來描述關聯式資料庫的結構。

在這兩種情況中,系統會提供足夠的關聯式資料庫相關資訊,可讓您使用DataContext.CreateDatabase方法來建立新的資料庫執行個體(Instance)。

DataContext.CreateDatabase方法只會針對物件模型中所編碼的資訊範圍,建立資料庫的複本。

物件模型中的對應檔案和屬性可能不會編碼現有資料庫結構的所有項目。

對應資訊並不代表使用者定義函式、預存程序(StoredProcedure)、觸發程序(Trigger)或檢查條件約束(CheckConstraint)的內容。

這個行為對各種資料庫而言就已足夠。

您可以將DataContext.CreateDatabase方法用在許多情況下,特別是在已知的資料提供者(DataProvider)(如MicrosoftSQLServer2008)可用時。

典型情況包括: 建置應用程式,這個應用程式會自動將它自己安裝在客戶系統上。

建置用戶端應用程式,這個用戶端應用程式需要本機資料庫來儲存它的離線狀態。

根據連接字串,您也可以使用.mdf檔案或目錄名稱來搭配使用DataContext.CreateDatabase方法與SQLServer。

LINQtoSQL會使用連接字串來定義要建立的資料庫,以及要在其上建立資料庫的伺服器。

注意 請盡可能使用Windows整合式安全性來連接至資料庫,如此連接字串就不需要使用密碼。

範例1 下列程式碼會提供如何建立名為MyDVDs.mdf之新資料庫的範例。

publicclassMyDVDs:DataContext { publicTableDVDs; publicMyDVDs(stringconnection):base(connection){} } [Table(Name="DVDTable")] publicclassDVD { [Column(IsPrimaryKey=true)] publicstringTitle; [Column] publicstringRating; } PublicClassMyDVDs InheritsDataContext PublicDVDsAsTable(OfDVD) PublicSubNew(ByValconnectionAsString) MyBase.New(connection) EndSub EndClass

_ PublicClassDVD _ PublicTitleAsString _ PublicRatingAsString EndClass 範例2 您可以使用物件模型來建立資料庫,步驟如下所示: publicvoidCreateDatabase() { MyDVDsdb=newMyDVDs("c:\\mydvds.mdf"); db.CreateDatabase(); } PublicSubCreateDatabase() DimdbAsNewMyDVDs("c:\...\mydvds.mdf") db.CreateDatabase() EndSub 範例3 建置(Build)會自動在客戶系統上自行安裝的應用程式時,請查看資料庫是否已經存在,並在建立新的資料庫之前卸除現有的資料庫。

DataContext類別(Class)會提供DatabaseExists和DeleteDatabase方法來協助您進行此程序。

下列範例顯示可以使用這些方法來實作此方法的方式: publicvoidCreateDatabase2() { MyDVDsdb=newMyDVDs(@"c:\mydvds.mdf"); if(db.DatabaseExists()) { Console.WriteLine("Deletingolddatabase..."); db.DeleteDatabase(); } db.CreateDatabase(); } PublicSubCreateDatabase2() DimdbAsMyDVDs=NewMyDVDs("c:\...\mydvds.mdf") Ifdb.DatabaseExists()Then Console.WriteLine("Deletingolddatabase...") db.DeleteDatabase() EndIf db.CreateDatabase() EndSub 另請參閱 屬性架構對應 外部對應 SQL-CLR類型對應 背景資訊 變更資料和提交 此頁面有所助益嗎? Yes No 還有其他意見反應嗎? 系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。

隱私權原則。

跳過 送出 謝謝。

此頁面有所助益嗎? Yes No 還有其他意見反應嗎? 系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。

隱私權原則。

跳過 送出 謝謝。

本文內容



請為這篇文章評分?