自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

LINQ to SQL使用DataContext連接字符串

開發(fā) 后端
這里介紹LINQ to SQL使用DataContext連接字符串,我們首先用實(shí)體類描述關(guān)系數(shù)據(jù)庫(kù)表和列的結(jié)構(gòu)的屬性。再調(diào)用DataContext的CreateDatabase方法,LINQ to SQL會(huì)用我們的定義的實(shí)體類結(jié)構(gòu)來(lái)構(gòu)造一個(gè)新的數(shù)據(jù)庫(kù)實(shí)例。

LINQ to SQL有很多值得學(xué)習(xí)的地方,這里我們主要介紹LINQ to SQL使用DataContext連接字符串,包括介紹創(chuàng)建和刪除數(shù)據(jù)庫(kù)等方面。

DataContext作為L(zhǎng)INQ to SQL框架的主入口點(diǎn),為我們提供了一些方法和屬性,本文用幾個(gè)例子說(shuō)明DataContext幾個(gè)典型的應(yīng)用。
◆CreateDatabase方法用于在服務(wù)器上創(chuàng)建數(shù)據(jù)庫(kù)。
◆DeleteDatabase方法用于刪除由DataContext連接字符串標(biāo)識(shí)的數(shù)據(jù)庫(kù)。

數(shù)據(jù)庫(kù)的名稱有以下方法來(lái)定義:
◆如果數(shù)據(jù)庫(kù)在連接字符串中標(biāo)識(shí),則使用該連接字符串的名稱。
◆如果存在DatabaseAttribute屬性(Attribute),則將其Name屬性(Property)用作數(shù)據(jù)庫(kù)的名稱。
◆如果連接字符串中沒(méi)有數(shù)據(jù)庫(kù)標(biāo)記,并且使用強(qiáng)類型的DataContext,則會(huì)檢查與DataContext繼承類名稱相同的數(shù)據(jù)庫(kù)。如果使用弱類型的DataContext,則會(huì)引發(fā)異常。
◆如果已通過(guò)使用文件名創(chuàng)建了DataContext,則會(huì)創(chuàng)建與該文件名相對(duì)應(yīng)的數(shù)據(jù)庫(kù)。

我們首先用實(shí)體類描述關(guān)系數(shù)據(jù)庫(kù)表和列的結(jié)構(gòu)的屬性。再調(diào)用DataContext的CreateDatabase方法,LINQ to SQL會(huì)用我們的定義的實(shí)體類結(jié)構(gòu)來(lái)構(gòu)造一個(gè)新的數(shù)據(jù)庫(kù)實(shí)例。還可以通過(guò)使用 .mdf 文件或只使用目錄名(取決于連接字符串),將 CreateDatabase與SQL Server一起使用。LINQ to SQL使用DataContext連接字符串來(lái)定義要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)和作為數(shù)據(jù)庫(kù)創(chuàng)建位置的服務(wù)器。

說(shuō)了這么多,用一段實(shí)例說(shuō)明一下吧!

首先,我們新建一個(gè)NewCreateDB類用于創(chuàng)建一個(gè)名為NewCreateDB.mdf的新數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)有一個(gè)Person表,有三個(gè)字段,分別為PersonID、PersonName、Age。

  1. public class NewCreateDB : DataContext  
  2. {  
  3.  
  4. public Table<Person> Persons;  
  5. public NewCreateDB(string connection)  
  6. :  
  7. base(connection)  
  8. {  
  9. }  
  10. public NewCreateDB(System.Data.IDbConnection connection)  
  11. :  
  12. base(connection)  
  13. {  
  14. }  
  15. }  
  16.  
  17. [Table(Name = "Person")]  
  18. public partial class Person : INotifyPropertyChanged  
  19. {  
  20.  
  21. private int _PersonID;  
  22. private string _PersonName;  
  23. private System.Nullable<int> _Age;  
  24.  
  25. public Person() { }  
  26.  
  27. [Column(Storage = "_PersonID"DbType = "INT",  
  28. IsPrimaryKey = true)]  
  29. public int PersonID  
  30. {  
  31. get { return this._PersonID; }  
  32. set  
  33. {  
  34. if ((this._PersonID != value))  
  35. {  
  36. this.OnPropertyChanged("PersonID");  
  37. this._PersonID = value;  
  38. this.OnPropertyChanged("PersonID");  
  39. }  
  40. }  
  41. }  
  42.  
  43. [Column(Storage = "_PersonName"DbType = "NVarChar(30)")]  
  44. public string PersonName  
  45. {  
  46. get { return this._PersonName; }  
  47. set  
  48. {  
  49. if ((this._PersonName != value))  
  50. {  
  51. this.OnPropertyChanged("PersonName");  
  52. this._PersonName = value;  
  53. this.OnPropertyChanged("PersonName");  
  54. }  
  55. }  
  56. }  
  57.  
  58. [Column(Storage = "_Age"DbType = "INT")]  
  59. public System.Nullable<int> Age  
  60. {  
  61. get { return this._Age; }  
  62. set  
  63. {  
  64. if ((this._Age != value))  
  65. {  
  66. this.OnPropertyChanged("Age");  
  67. this._Age = value;  
  68. this.OnPropertyChanged("Age");  
  69. }  
  70. }  
  71. }  
  72.  
  73. public event PropertyChangedEventHandler PropertyChanged;  
  74. protected virtual void OnPropertyChanged(string PropertyName)  
  75. {  
  76. if ((this.PropertyChanged != null))  
  77. {  
  78. this.PropertyChanged(this,  
  79. new PropertyChangedEventArgs(PropertyName));  
  80. }  
  81. }  

接下來(lái)的一段代碼先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),在調(diào)用CreateDatabase后,新的數(shù)據(jù)庫(kù)就會(huì)存在并且會(huì)接受一般的查詢和命令。接著插入一條記錄并且查詢。***刪除這個(gè)數(shù)據(jù)庫(kù)。

  1. //新建一個(gè)臨時(shí)文件夾來(lái)存放新建的數(shù)據(jù)庫(kù)  
  2. string userTempFolder = Environment.GetEnvironmentVariable  
  3. ("SystemDrive") + @"\YJingLee";  
  4.  Directory.CreateDirectory(userTempFolder);  
  5.  
  6. //新建數(shù)據(jù)庫(kù)NewCreateDB  
  7. string userMDF = System.IO.Path.Combine(userTempFolder,  
  8. @"NewCreateDB.mdf");  
  9. string connStr = String.Format(@"Data Source=.\SQLEXPRESS;  
  10. AttachDbFilename={0};Integrated Security=True;  
  11. Connect Timeout=30;User Instance=True;   
  12. Integrated Security = SSPI;", userMDF);  
  13. NewCreateDB newnewDB = new NewCreateDB(connStr);  
  14. newDB.CreateDatabase();  
  15.  
  16. //插入數(shù)據(jù)并查詢  
  17. var newnewRow = new Person  
  18. {  
  19. PersonID = 1,  
  20. PersonName = "YJingLee",  
  21. Age = 22 
  22. };  

【編輯推薦】

  1. Linq匿名類型簡(jiǎn)單概述
  2. Linq隨機(jī)讀取數(shù)據(jù)淺析
  3. Linq Lambda表達(dá)式全面分析
  4. Linq擴(kuò)展方法簡(jiǎn)單分析
  5. 初探Linq局部變量類型
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-09-08 14:56:55

強(qiáng)類型DataContLinq to SQL

2009-09-09 15:44:22

Linq DataCo

2009-09-14 10:42:03

LINQ生成字符串

2009-09-15 13:20:34

LINQ DataCo

2009-09-17 11:16:44

LINQ代碼生成

2009-09-13 21:52:16

LINQ字符串

2023-01-09 09:52:06

Bash字符串

2010-11-08 15:58:54

SQL Server連

2010-06-17 16:00:59

SQL Server

2010-06-17 16:13:05

SQL Server

2010-09-09 11:48:00

SQL函數(shù)字符串

2010-10-12 11:13:51

2009-12-24 09:49:02

ADO.Net連接池

2010-09-13 15:50:03

sql server數(shù)

2010-06-17 16:38:14

MS SQL Serv

2009-08-20 18:23:29

C#中SQL連接字符串

2010-06-28 15:18:51

SQL Server

2010-09-13 15:12:26

sql server字

2010-11-08 17:07:41

SQL Server字

2010-05-26 15:14:39

MySQL字符串
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)