.NET Core整理之配置EFCore
1、新建ASP.NET Core Web应用程序
2、从NuGet下载安装以下工具包
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer.Design
3、然后,我们在VS的工具选项中,选择NuGet包管理器,选择程序包管理控制台(其中Models2是输出文件夹)
Scaffold-DbContext "Server=.;database=test1;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
4、这里面就是你的上下文对象和相关的实体类了
5、注释上下文对象里的固化连接字符串
6、在配置文件里添加数据库连接字符串:
"ConnectionStrings": { "SqlServer": "Server=.;database=test;Trusted_Connection=True;" },
7、然后我们在Startup中注入我们的上下文对象和获取数据库连接串
//注入上下文对象
services.AddDbContext<testContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("SqlServer")));
8、创建控制器,代码如下
public class FirstController : Controller
{
//构造函数注入上下文
private readonly testContext _context;
public FirstController(testContext Context)
{
_context = Context;
}
// GET: /<controller>/
public IActionResult Index(int? id)
{
base.ViewData["User1"] = new CurrentUser()
{
Id = _context.TestAutoid.Find(1).Autoid1,
Name = _context.TestAutoid.Find(1).Autoid2.ToString(),
Account = _context.TestAutoid.Find(1).Autoid3.ToString(),
Email = _context.TestAutoid.Find(1).Autoid4.ToString(),
Password = _context.TestAutoid.Find(1).Autoid5.ToString(),
};
base.ViewData["Something"] = 12345;
base.ViewBag.Name = "Eleven";
base.ViewBag.Description = "Teacher";
base.ViewBag.User = new CurrentUser()
{
Id = 7,
Name = "IOC",
Account = "限量版",
Email = "莲花未开时",
Password = "落单的候鸟",
LoginTime = DateTime.Now
};
base.TempData["User"] = new CurrentUser()
{
Id = 7,
Name = "CSS",
Account = "季雨林",
Email = "KOKE",
Password = "落单的候鸟",
LoginTime = DateTime.Now
};//后台可以跨action 基于session
if (id == null)
{
//return this.Redirect("~/First/TempDataPage");//未完待续
//return this.re
return this.Redirect("~/First/TempDataPage");
}
else
return View(new CurrentUser()
{
Id = 7,
Name = "一点半",
Account = "季雨林",
Email = "KOKE",
Password = "落单的候鸟",
LoginTime = DateTime.Now
});
}
}
9、创建相应的视图如下:
@model NetCore2._2.MVC6.Models.CurrentUser
@using NetCore2._2.MVC6.Models;
@{
ViewBag.Title = "Index";
CurrentUser userViewData = ViewData["User1"] as CurrentUser;//ViewData需要类型转换
CurrentUser userViewBag = ViewBag.User;//ViewBag直接用
CurrentUser userOther = ViewBag.User1;
}
<div class="row">
<div class="col-md-4">
<h2>Getting started</h2>
@base.Model.Name
<p>@(((CurrentUser)ViewData["User1"]).Name)</p>
<p>@userViewData.Name</p>
<p>@userViewBag.Account</p>
<p>@userOther.Name</p>
<p>@(((CurrentUser)ViewBag.User).Name)</p>
<p>@(((CurrentUser)TempData["User"]).Name)</p>
<p>@base.Model.Name</p>
</div>
</div>
10、然后在运行我们的代码.得到结果如下: