.net Core 自我學習隨筆(三)——我們整個數據庫如何?

第一篇文章就提到過,會給大家介紹數據庫方面的知識。那好吧我們這回要好好學習學習數據庫方面的知識了!

在學習數據庫知識之前,我們先要了解一下,主流的數據庫有哪一些:
1、MSSQL,也就是常說的 Microsoft SQL Server。對於 非 Windows 的系統來說,是不能安裝使用的——至少在沒出 Linux 版之前,但聽說微軟打算出品 For Linux,只不過功能要低一些。

2、MySQL / Maridb,這是各個公司最常用的數據庫。爲什麼,免費唄,不花銀子唄。不花錢的誰不喜歡。而他最佳拍檔就是 PHP 啦。聽說 PHP 7.0 用得是 PDO 鏈接數據庫的方法,這就對數據庫操作提供了更好的方式。

3、Sqlite,你可以把他當成像 Access 那樣就是一個文件的數據庫,也可以理解爲在 Access 基礎上,一個全面的獨立 SQL 數據庫文件

4、Oracle,甲骨文的最好的技術產物——自從 JAVA 被收了後,感覺 Java 就被 Oracle 好好綁架當壓寨夫人了,而小弟弟 MySQL 成了小催。。。呃。。。過了過了。Oracle 強大的數據庫管控能力是在 SQL 之上,所以被稱爲大神級的數據庫。

還有其它的,他是,可以忽略了。畢竟,用得也少。

下面,我以 Microsoft 常用的 MSSQL 來作爲例子給大家介紹一下其如何玩耍。呃。。。我主要用得是 MSSQL 2012,其實其它的也都差不多拉。

好,我們還是像以前,建立個環境。我就用 VS2015 來整了。爲什麼這樣,因爲我擔心我一高興寫錯了,這樣很頭痛的(^^)!爲此,我不會用一些只有 Visual Studio 才能用到的方法,而是採用全平臺都能玩的方式演示。

工程名我也想好了,就叫“testProject”,多 COOL 的名字,一看就知道這是幹嘛的!

按第一篇文章的方式,我們選把 testProject 那好。那好的樣子是:
這裏寫圖片描述

好,我們要想讓 .net Core 與“數據庫”交流,就要調用相應的交流包。這些包怎麼調用呢?當然是通過設置其 project.json 工程文件來實現。

第一篇說過 project.json 可以用來調用 NuGet 來設置相應的庫。

首先,我們打開 project.json,按如下方式來修改:
1、在“dependencies”添加“Microsoft.EntityFrameworkCore.SqlServer”,版本是“1.1.0”;之後再添加“Microsoft.EntityFrameworkCore.Design”,版本是“1.1.0”,類型爲“build”。

"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.Design": {
    "version": "1.1.0",
    "type": "build"
}

如此修改後,我們就看到了在“引用”中多出了兩個傢伙:
這裏寫圖片描述

如果其它的數據庫,比如 MySQL、Sqlite,其實,你就把“Microsoft.EntityFrameworkCore.SqlServer”裏改成相應的Nuget,比如:“Microsoft.EntityFrameworkCore.Sqlite”、“MySQL.Data.Entities”。

2、我們要用於 First Code 實現的類。怎麼做呢?方式是建立一個類來實現。我們先新建立一個文件夾叫“Model”,這樣纔有 MVC 的樣子(><)!之後在裏面建立一個類(class),名字叫“myDataBase”——我的數據庫!

看準下圖,別建錯了!畢竟,.net Core 只識 .net Core,對 .net Framework 基本無視。
這裏寫圖片描述

結果應該如下:
這裏寫圖片描述

3、改 myDataBase.cs 中的代碼
我們先看一下,myDataBase.cs 中的原始樣子是什麼樣子,這樣大家統一一下,不然姿勢錯了,直接再順下去,八成要出奇葩了。
這裏寫圖片描述

好的,我們下面對其修改了。

首先,我們在 一大堆 using 中加入“using Microsoft.EntityFrameworkCore;”這樣,就有了正確的命名空間來對下面的代碼進行支持了。

之後,在 public class myDataBase 後面加上“ : DbContext”。

再然後在方法裏建立兩個方法——其實說白了相當於數據庫中的“表”。

public DbSet<MyUser> Users { get; set; }
public DbSet<MyNews> News { get; set; }

其中,Users 與 News 必須與數據庫表明一致,而MyUser 與 MyNews 就是類構成——其結構,自己看心情起。^^

有了兩個表後,我們要想一想了。不對呀,我們不連數據庫,有兩個表有毛用呀,所以我們要連接一下數據庫(說實話,我感覺我有點本末倒置)。代碼是:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseSqlServer(@"Server=SQLOLEDB;Data Source=(local);uid=sa;pwd=za;DataBase=myDataBase");
}

其中我們看到在 optionsBuilder 對象中有一個 UseSqlServer方法,說明這是連接 SQL Server 的,如果在 project.json 中選擇其它數據庫相應的類庫,那麼這裏的 UseSqlServer 也會變成其它的數據庫連接方法,比如 Sqlite 就是 UseSqlite。

後面的 @”Server=SQLOLEDB;Data Source=(local);uid=sa;pwd=za;DataBase=myDataBase” 是針對數據庫的連接字符串,根據自己的需要進行修改

下面,我們看看 myDataBase.cs 文件裏面就是下面這個樣子:
這裏寫圖片描述

我們發現在這個文件中,IDE 提出了兩個錯誤點,可能大家用別的編輯器時不會發現——“MyUser”與“MyNews”。

上面說了,這兩貨是數據庫中表結構的類,所以我們最好先在數據庫中建立相應的表。別忘記數據庫名是:myData——見連接字符串。

我用得是 SQL Server 2012 具體情況如下:
這裏寫圖片描述

Users表(主鍵:id,自增):
這裏寫圖片描述

News表(主鍵:news_id,自增):
這裏寫圖片描述

好了,有表了之後,我們就要實現這兩個表了。怎麼實現呢,當然要對這兩個傢伙建立相應的類啦。

依習慣,我個人的習慣呀,你們隨意了。就是在Model 中建個 dbo 來存放相應表對應的類。之後,我們在 dbo 文件夾裏建立相應的兩個類文件:MyUser.cs、MyNews.cs

這裏寫圖片描述

好,我們來具體實現,先整 MyUser.cs,代碼如下:

using System;
using System.ComponentModel.DataAnnotations;

namespace testProject.Model.dbo
{
    public class MyUser
    {
        [Key]
        public int id { get; set; }
        public string name { get; set; }
        public DateTime? createtime { get; set; }
    }
}

我們從中可以看出,方法 id、name、createtime 是對應着數據庫表 Users 裏面的每個字段,連類型也是一一對應。

[Key] 標籤標註着 id 是關鍵字。而如果要在類中調用 [Key] 就必須要引入命令空間:System.ComponentModel.DataAnnotations。

這樣第一個表的類就實現了,第二個 MyNews.cs 如同上,我們照“類畫類”。

using System;
using System.ComponentModel.DataAnnotations;

namespace testProject.Model.dbo
{
    public class MyNews
    {
        [Key]
        public int news_id { get; set; }
        public string news_name { get; set; }
        public string news_content { get; set; }
        public DateTime? news_createtime { get; set; }
    }
}

兩個類實現完了後,我們就要向數據庫類 myDataBase.cs 中引入這兩個傢伙。因爲都在 dbo 文件夾中,所以我們只要在 myDataBase.cs 加入命名空間:testProject.Model.dbo 即可。

這裏寫圖片描述

這樣,數據庫連接就成了。其實的只要調用這個 Model 就成了,和平常的 MVC 一樣。

什麼???有人不會操作。。。天那。。。好吧,我先簡單介紹一下吧!T_T

我們先在 Controller 文件夾中的 HomeController.cs 建立一個方法,就叫 writeUser。

public string writeUser()
        {
            Model.myDataBase db = new Model.myDataBase();

            Model.dbo.MyUser user = new Model.dbo.MyUser
            {
                name = "MysteriousMan",
                createtime = DateTime.Now
            };

            db.Users.Add(user);
            db.SaveChanges();

            return "ok";
        }

運行結果 Web 頁:
這裏寫圖片描述

運行結果 數據庫:
這裏寫圖片描述

這樣,.net Core 數據庫的基本操作就這樣子鳥~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章