EF Core CodeFirst實踐 ( 使用MS SqlServer) ASP.NET Core 開發 - Entity Framework (EF) Core

這裏使用 MS SQLSERVER ,網上大多使用 SQLite

先來一個CodeFirst

新建項目

這裏我們選擇  ASP.NET Core Web Application (.NET Core) 

這裏選擇web 應用程序,然後更改身份驗證 改爲 不進行身份驗證

然後再包管理控制檯裏執行下面兩條命令

 

引用 EntityFrameworkCore

Install-Package Microsoft.EntityFrameworkCore

再引用 EntityFrameworkCore.SqlServer

Install-Package Microsoft.EntityFrameworkCore.SqlServer

創建實體

我們在項目添加一個 Models 文件夾。

新建一個User.cs

    public class User
    {
        public int Id { get; set; }
        public string UserName { get; set; }
        public string Password { get; set; }
    }

這裏我爲了方便,繼續新建 DataContext.cs

複製代碼
    public class DataContext : DbContext
    {
        public DataContext(DbContextOptions<DataContext> options)
            : base(options)
        {
        }
        public DbSet<User> Users { get; set; }
    }
複製代碼

創建數據庫

打開 Startup.cs  在 ConfigureServices 下添加如下代碼:

複製代碼
        public void ConfigureServices(IServiceCollection services)
        {
        //這裏就是填寫數據庫的鏈接字符串 var connection = "Data Source=.;Initial Catalog=EFCore;User ID=sa;Password=sa.123"; services.AddDbContext<DataContext>(options => options.UseSqlite(connection)); // Add framework services. services.AddMvc(); }
複製代碼

添加好以後,我們來安裝 Microsoft.EntityFrameworkCore.Tools 

Install-Package Microsoft.EntityFrameworkCore.Tools –Pre

在文件資源管理器中找到這個項目,找到 project.json文件

 

 

在 tools節點下 增加代碼

 "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": [
        "portable-net45+win8+dnxcore50",
        "portable-net45+win8"
      ]
    },

效果如下圖

 

之後  開始創建數據庫 使用 dotnet ef 命令

先打開cmd 窗口 ,跳轉到當前項目文件夾

輸入

  dotnet ef migrations add MyFirstMigration

 

再輸入

  dotnet ef database update

這樣數據庫就創建好了

注意
如果 IIS-Express 在運行中,你會遇到錯誤
CS2012: Cannot open 'MvcMovie/bin/Debug/netcoreapp1.0/MvcMovie.dll' for writing -- 'The process cannot access the file
'MvcMovie/bin/Debug/netcoreapp1.0/MvcMovie.dll'
because it is being used by another process.'

dotnet ef 命令

  • dotnet (.NET Core) 是 .NET 的跨平臺實現。你可以在這裏瞭解它。
  • dotnet ef migrations add Initial 運行 Entity Framework .NET Core CLI 遷移命令並創建初始化遷移。參數 "Initial" 可以是任意值,但是通常用這個作爲第一個(初始的) 數據庫遷移。這個操作創建了一個 *Data/Migrations/_Initial.cs* 文件,這個文件包含了添加(或刪除)Movie 表到數據庫的遷移命令。
  • dotnet ef database update dotnet ef database update 用我們剛剛創建的遷移來更新數據庫。

 

 添加  UserController
public class UserController : Controller
    {
        private efcoredemoContext _context;

        public UserController(efcoredemoContext context)
        {
            _context = context;
        }

        // GET: /<controller>/
        public IActionResult Index()
        {
            return View(_context.Users.ToList());
        }
    }

添加 Index.cshtml

@model IEnumerable<EFCoreDemo.Models.User>

@{
    ViewBag.Title = "用戶";
}
<table class="table">
    <tr>
        <th>Id</th>
        <th>用戶名</th>
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Id)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.UserName)
            </td>
        </tr>
    }
</table>

然後就可以運行啦

 

感謝  ASP.NET Core 開發 - Entity Framework (EF) Core

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