用ASP.NET創建數據庫


小白的第一次使用:

程序員寫程序,就好比一個物品的慢慢誕生,我們今天的這個例子就可以想象成一個物品慢慢的在編譯的過程中,讓我們所看到

一、創建我們所測試的項目

   1.創建一個簡單的帶有模型層(Model)數據訪問層(DAL)控制台應用程序架構。

DAL:數據訪問層,實現對數據庫的操作控制

Model:模型層,創建表

Text:控制台,進行控制

二、開始創建模型

Model層中創建一個你所需要的模型類。

我們在這里寫入一個人員模型

1.People模型

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
//指定表名
[Table("People")]
public class People
{
//指定該表的主鍵
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ID { get; set; }
public string Name { get; set; }
public DateTime? BirthDay { get; set; }
public int? Age { get; set; }
}
}

 

這里我們要注意的是using 中的System.ComponentModel.DataAnnotations;

這個我們要從引用中去查找,在引用處右鍵==>添加引用==>框架中的System.ComponentModel.DataAnnotations這個類庫,這個類庫是方便你進行主鍵(key)和表(Table)等相關的特性類別。

如果你需要將對應表中的字段映射為可空,那么在Student的屬性類型后面加個問號(?)即可,如public Datetime? BirthDay{ };

三、創建上下文

我們現在已經可以說做出來一個模型,但是我們要寫到程序里面去,那么我們在這里就要用到這個模型,因此在DAL中需要引用Model  這樣子我們就可以把模型放到電腦中的意思,引用的方法和上面所說的引用System.ComponentModel.DataAnnotations這個類庫一樣,但是我們需要在解決方案中尋找這個Model,以及我們需要加載一個EntityFramework的引用,引用右鍵==>管理NuGet程序包==>找到EntityFramework 安裝 如果你安裝成功,則會出現以下的樣子。

這時候我們就可以創建上下文了。

首先我們要在DAL層進行一系列的操作,因為我們的模型現在正存着,我們要把它用起來,這里很關鍵,我們首先需要引用Model層和上面我所敘述的EntityFramework這兩個引用,代碼如下

 

using Model;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

 

namespace DAL {
public class DemoContext:DbContext {
//使用name=Text的連接字符串
public DemoContext() : base("Text") { }

 

//People屬性對應數據庫中的People表
public virtual DbSet<People> Peoples { get; set; }

 

protected override void OnModelCreating(DbModelBuilder modelBuilder) {
base.OnModelCreating(modelBuilder);
}
}
}

 

 

這個是讓你所做的這個模型可以最終展示到我們的面前,代碼如下:

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--Begin 創建連接字符串-->
<connectionStrings>
<add name="EFDemo" connectionString="server=.;Database=EFDemo;Trusted_Connection=true;" providerName="System.Data.SqlClient" />
</connectionStrings>
<!--End 創建連接字符串-->
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>

 

在這時候,其實你的數據庫中就已經有一個名稱叫做Text的數據庫,並且里面有一張People的表了,我們是完全不用到數據庫中創建的,因為我們今天所學習的EF是代碼優先(CodeFirst),系統會識別連接字符串中的數據庫名稱(Database=Text)和數據上下文類型中的DbSet<People>,通過一個對象-關系映射框架(ORM)自動創建並映射數據庫Text和People表,這就是代碼優先的好處,不需要你去創建一個數據庫再去創建一些你所需要的東西。

 

好啦,當我們到這里的時候,就已經完成三分之二了,這時候只需要最后一步,就是讓DAL層可以訪問到控制層,並讓控制層的東西與DAL層以及Model層進行交互,因此,我們需要引用這兩個層

方法跟我上面所說的一樣,

using System;
using DAL;
using Model;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Text
{
class Program
{
static void Main(string[] args)
{

using (DemoContext context = new DemoContext())
{
//在使用模型類之前需要強制創建數據庫 true:強制創建
context.Database.Initialize(true);
People peo=new People
{
Name = "小王",
BirthDay = DateTime.Parse("1998-08-01"),
Age = 22
};

//新增一個Student實體,相當於在Student表中,新增一條數據
context.Peoples.Add(peo);
//保存
context.SaveChanges();
}
}
}
}

這時候我們就可以先運行,之后就可以去數據庫中查看是否有我們所需要的這個Text庫以及這個People表了。

 

由夜月天大佬的EF-關於類庫中EntityFramework之CodeFirst(代碼優先)的操作淺析,自己做了一遍再用小白的方式分享給大家。

源網址:https://www.cnblogs.com/williamwsj/p/7253910.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM