Unity WebGL連接數據庫,除了之前提到的一種使用PHP的方法外,還用一種就是本文提到的,使用ASP.NET Web API寫一個HTTP接口,然後在UnityWebGL中調用。
需要工具:
Visual Studio 2017(需要有ASP.NET Web API的開發環境)
SQL Server數據庫
Unity2017.4.10(需要能夠發佈WebGL)
數據庫操作
首先需要在SQL Server中新建一個數據庫。打開數據庫,右鍵新建數據庫,命名爲MyWebAPI。
打開VS2017創建APS.NET Web API項目
1、創建項目
新建項目,選擇ASP.NET Web應用程序,命名爲MyWebAPI
在這個界面,選擇空的模板,添加文件夾和核心應用選擇Web API 。不進行身份驗證即可。
創建好的界面如下。
2、安裝Entity Framework框架
現在項目已經創建好了,接下來就準備連接數據庫。這裏使用的是SQL Server數據庫,在VS中有已經寫好的框架,直接安裝框架使用即可。這樣就免去了寫SQL語句的麻煩。Entity Framework。首先打開“工具”—>NuGet包管理器—>程序包管理控制檯。
在控制檯輸入如下命令進行安裝
Install-Package EntityFramework
如出現如下界面,即爲安裝成功。
3、連接數據庫
安裝完成之後我們就需要連接數據庫了,打開Web.config文件,在裏面加入連接數據庫代碼,如下,其中*****部分替換爲你數據庫的名稱
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=Localhost;Initial Catalog=******;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
最終效果如下:
4、建立數據模型
在Models目錄下新建一個類,命名爲Student(右鍵,添加,類)
/// <summary>
/// 學生信息,數據庫中的表格的內容和這個是對應的
/// </summary>
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public string StudentNumber { get; set; }
public string Class { get; set; }
public string Address { get; set; }
}
之後再建立一個數據庫的Context類文件。
public class StudentContext : DbContext
{
public StudentContext()
: base("name=DefaultConnection")
{
}
public DbSet<Student> Students { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
注意:
1、name=DefaultConnection要和Web.config中的數據庫連接字符串中的name一致。
2、OnModelCreating重載函數的作用是讓創建的數據表名稱爲單數格式,即爲Student,而不是Students。
5、啓用Migrations
在程序包管理控制檯啓用Migrations,生成Migrations目錄,以及目錄中的Configuration.cs配置文件。在控制檯輸入如下代碼:
Enable-Migrations
在這裏可能很多人會報錯,不用慌,解決辦法在這裏,這是本人踩的第一個坑。解決辦法
6、將建立的數據模型導入到SQL Server中
在程序包管理控制檯輸入:
Add-Migration xxx
其中xxx可任意填寫,VS會生成一個名爲201912050905531_123_xxx.cs文件,201912050905531_123是當前時間,文件包含Up和Down兩個方法。
圖片中黃色部分不需要管,因爲我之前已經創建過。對程序沒有影響。
接下來輸入:
Update-Database
對數據庫進行更新。執行完畢之後,進入數據庫刷新一下,就會發現Student數據表已經創建完畢了。
7、向數據庫添加模擬數據
利用Configuration.cs中的Seed函數添加一些測試數據,在Seed方法下添加以下模擬數據。
var student = new Student
{
Name = "小王",
StudentNumber = "20190201",
Class = "三年二班",
Address = "中山區",
};
context.Students.Add(student);
student = new Student
{
Name = "小李",
StudentNumber = "20190506",
Class = "三年五班",
Address = "高新園區",
};
context.Students.Add(student);
student = new Student
{
Name = "小王",
StudentNumber = "20190315",
Class = "三年三班",
Address = "西崗區",
};
context.Students.Add(student);
添加完畢之後保存,在控制檯輸入:Update-Database
進行更新,帶執行完畢之後刷新數據庫,就會發現我們添加的數據已經顯示在了數據庫之中。
下一篇將寫到創建控制器以及在瀏覽器中讀取。