vs2017上.netCore2.0 EF的DataBase First使用笔记

一、环境

win10,vs2017,netcore2.0,sqlserver 2012

二、数据库

数据库名称 test

建表代码:

CREATE TABLE users
(Id int IDENTITY (1,1) PRIMARY KEY,
UserName varchar(50),
Password varchar(50)
)
go

三、新建一个.NET Core2.0的MVC项目

四、使用Nuget添加依赖

install-package microsoft.entityframeworkcore.sqlserver

install-package microsoft.entityframeworkcore.tools

install-package microsoft.entityframeworkcore.sqlserver.design

install-package microsoft.visualstudio.web.codegeneration.design
安装成功后就可以在Nuget依赖项中看到:


五、根据命令从数据库生成model

使用以下命令生成model

PM> Scaffold-DbContext "Server=localhost;Database=test;UID=sa;PWD=sapwd" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
添加成功后在models可以看到, 生成了上下文对象与和表对应的model


注意:这里直接生成的代码是将数据库连接直接写入"testContext.cs"文件中,编码时最好将数据库连接字符写入配置文件。

六、修改Startup.cs文件

在Startup.cs添加 using qgtest.Models;

并且在ConfigureServices方法中添加services.AddDbContext<testContext>();


七、添加Controller


在Controllers文件夹的右键快捷菜单中单击“添加”->“控制器”,新建一个空的MVC控制器类UserController,UserController代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using qgtest.Models;

namespace qgtest.Controllers
{
    public class UserController : Controller
    {
        private testContext _context;
        public UserController(testContext context)
        {
            _context = context;
        }
        //GET:/
   
   
    
    /
        public IActionResult Index()
        {
            return View(_context.Users.ToList());
        }
        public IActionResult Register()
        {
            return View();
        }
        [HttpPost]
        [ValidateAntiForgeryToken]
        public IActionResult Register(Users register)
        {
            if(ModelState.IsValid)
            {
                _context.Users.Add(register);
                _context.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(register);
        }
    }
}
   
   
这里控制器需要将testContext作为构造函数的参数。asp.net依赖注入将通过实例注入testContext到你的控制器。

Index action表示显示所有用户,Register action表示注册用户,即把用户添加至用户表。

八、添加前端View


在views文件夹中添加一个User文件夹,然后添加一个Index视图,代码如下:

@model IEnumerable
   
   
    
    
@{
    ViewBag.Title = "用户";
}





    
    
    
    
    
    Index


    
    
    
ID用户名密码
@foreach (var item in Model) {
@Html.DisplayFor(modelItem => item.Id)@Html.DisplayFor(modelItem => item.UserName)@Html.DisplayFor(modelItem => item.Password)
}

接着再添加一个Register视图,代码如下:

@model qgtest.Models.Users
@{
    ViewBag.Title = "用户添加";
}





    
   
   
    register


    
   
   

九、调试

点击或者按F5,让程序运行起来。显示页面如下:


在地址栏输入http://localhost:50957/user/register访问注册页面。


在注册页填入信息,注册成功后将跳转至http://localhost:50957/User。

显示结果如下图:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

广哥教打杂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值