asp.net core+ef core

asp.net core+ef core

官方的文档https://docs.asp.net/en/latest/tutorials/first-mvc-app/start-mvc.html

先来看一下实现的效果

开始之前,确定本机已经有.NET Core环境。https://www.microsoft.com/net/core#windows

1.创建解决方案的文件结构如下图(模糊处理的过文件是自己后面加的和ef生成的)。

2.要使用ef core,先引用ef core相关的程序包。https://docs.efproject.net/en/latest/platforms/aspnetcore/existing-db.html

打开project.json,将“Microsoft.EntityFrameworkCore.SqlServer”、“Microsoft.EntityFrameworkCore.SqlServer.Design”和“Microsoft.EntityFrameworkCore.Design”添加到“dependencies”下;将“Microsoft.EntityFrameworkCore.Tools”添加到“tools”下。(注:当然这些都可以通过NuGet来安装,需要注意的是用nuget安装“Microsoft.EntityFrameworkCore.Tools”时,要将其移动到“tools”下)

3.打开连接到数据库,设置数据库连接字符串

4.打开程序包管理控制台,运行下面命令。-OutputDir Models指向生成文件存放文件的位置是Models

Scaffold-DbContext "Server=.;Database=CoreDemo;Trusted_Connection=True;User ID=你的连接数据库的用户;Password=你的连接数据库的密码;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

5.打开刚才用Scaffold-DbContext生成的CoreDemoContext.cs的文件,移除OnConfiguring方法

6.在CoreDemoContext.cs里面加入下面代码

1 public CoreDemoContext(DbContextOptions<CoreDemoContext> option)
2       : base(option)
3 { }

7.打开appsettings.json,加入下面的数据连接配置代码

"ConnectionStrings": {
    "CoreDemoDatabase": "Server=.;Database=CoreDemo;Trusted_Connection=True;User ID=你的连接数据库的用户;Password=你的连接数据库的密码;"
  }

8.打开Startup.cs,修改ConfigureServices方法,如下

1 public void ConfigureServices(IServiceCollection services)
2 {
3       // Add framework services.
4       services.AddMvc();
5       services.AddDbContext<CoreDemoContext>(option => option.UseSqlServer(Configuration.GetConnectionString("CoreDemoDatabase"))); // 获取sql连接配置
6 }

9.添加一个新的Controller--UserController

 1     public class UserController : Controller
 2     {
 3         private CoreDemoContext _context;
 4
 5         public UserController(CoreDemoContext context)
 6         {
 7             _context = context;
 8         }
 9
10         // GET: /<controller>/
11         public IActionResult Index()
12         {
13             var users = (from u in _context.TUsers
14                          select u).ToList();
15             return View(users);
16         }
17
18         public IActionResult Create()
19         {
20             return View();
21         }
22
23         [HttpPost]
24         [ValidateAntiForgeryToken]
25         public async Task<IActionResult> Create(UserViewModel model)
26         {
27             if (!ModelState.IsValid)
28             {
29                 return View(model);
30             }
31
32             TUsers user = new TUsers()
33             {
34                 Name = model.Name
35             };
36             _context.TUsers.Add(user);
37             int result = await _context.SaveChangesAsync();
38             return RedirectToAction("Index");
39         }
40     }

10.创建Index视图和Create视图

 1 @model IEnumerable<TUsers>
 2
 3 @{
 4     ViewBag.Title = "用户列表";
 5 }
 6
 7 <h2>用户列表</h2>
 8 <p>
 9     <a asp-action="Create">添加用户</a>
10 </p>
11
12 <table class="table table-bordered table-hover table-striped">
13     <tr>
14         <th>姓名</th>
15         <th>创建日期</th>
16     </tr>
17     @foreach (var item in Model)
18     {
19         <tr>
20             <td>
21                 @Html.DisplayFor(modelItem => item.Name)
22             </td>
23             <td>
24                 @(((DateTime)item.CreateDate).ToString("yyyy-MM-dd hh:mm:ss"))
25             </td>
26         </tr>
27     }
28 </table>

 1 @model WebDemo.Models.UserViewModel
 2
 3 @{
 4     ViewBag.Title = "新增用户";
 5 }
 6
 7 <h2>创建一个新用户</h2>
 8
 9 <form asp-action="Create" method="post">
10     <div class="form-horizontal">
11         @*<div asp-validation-summary="All" class="text-danger"></div>*@
12         <div class="form-group">
13             <label asp-for="Name" class="col-md-2 control-label">姓名:</label>
14             <div class="col-md-10">
15                 <input asp-for="Name" class="form-control" />
16                 <span asp-validation-for="Name" class="text-danger"></span>
17             </div>
18         </div>
19         <div class="form-group">
20             <div class="col-md-offset-2 col-md-10">
21                 <input type="submit" value="Create" class="btn btn-default" />
22             </div>
23         </div>
24     </div>
25 </form>
26
27 @section scripts{
28     @* 添加jquery验证库 *@
29     <environment names="Development">
30         <script src="~/lib/jquery-validation/dist/jquery.validate.js" asp-append-version="true"></script>
31         <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js" asp-append-version="true"></script>
32     </environment>
33     <environment names="Staging,Production">
34         <script src="~/lib/jquery-validation/dist/jquery.validate.min.js" asp-append-version="true"></script>
35         <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js" asp-append-version="true"></script>
36     </environment>
37 }

11.到这一步,运行项目可以直接用vs启动,也可以在cmd里面使用“dotnet run

转载请标注原文地址:http://www.cnblogs.com/JasonLong/p/5653273.html

时间: 2024-08-06 16:06:02

asp.net core+ef core的相关文章

.net core EF Core 视图的应用

由之前的一篇文章<.net core Entity Framework 与 EF Core>我们都已经知道 EF Core 增加了许多特性,并且性能上也有了很大的提升. 但是EF Core是不支持存储过程及视图的映射的,那么直接通过 DbContext 是没有办法直接调用(就是不能直接 "点" 出来)到存储过程与视图的. 上一篇<.net core EF Core 调用存储过程>中已经讲到了存储过程的调用了,这篇就只讲视图了. 对视图来讲,在数据库中 EF Co

在vs2015上使用asp.net core+ef core

官方的文档https://docs.asp.net/en/latest/tutorials/first-mvc-app/start-mvc.html 先来看一下实现的效果 开始之前,确定本机已经有.NET Core环境.https://www.microsoft.com/net/core#windows 1.创建解决方案的文件结构如下图(模糊处理的过文件是自己后面加的和ef生成的). 2.要使用ef core,先引用ef core相关的程序包.https://docs.efproject.net

asp.net core ef core mysql 新增数据并发异常处理

net core 2.0发布后,一直想体验下,因种种原因,一直在拖着没进行. 前阵子公司要加个新的内部管理后台,正好可以用asp.net core来做下,体验下net core的魅力. 啃过文档后就上手了,一切很顺利. 直到周五,出现了一个并发异常的问题,本以为可以很快处理掉的,但没想到一直花费了很长时间才解决掉,现在记录下情况,有相同经历的伙伴以后可以参考. 先上异常截图. 异常提示: Microsoft.EntityFrameworkCore.DbUpdateConcurrencyExcep

[.Net Core] EF Core实践(DB First)

一.开发环境: VS2015, .Net Core 1.0.0-preview2-003156 二.准备数据: CREATE DATABASE [Blogging]; GO USE [Blogging]; GO CREATE TABLE [Blog] ( [BlogId] int NOT NULL IDENTITY, [Url] nvarchar(max) NOT NULL, CONSTRAINT [PK_Blog] PRIMARY KEY ([BlogId]) ); GO CREATE TAB

asp.net Core EF core ( Entity Framework 7 ) 数据库更新维护

CreateData-baseIfNotExists等之前的API已经废弃,现在采用的是微软封装好,简化.高效的API,migrations 因为,旧API,要付出高昂的代价,以及局限性 打开VS2017,选择工具->NutGet包管理器->程序包管理器控制台 1.输入Add-Migration MyFirstMigration 指令 就会根据当前的dbcontext自动生成Migrations文件夹及文件,这些文件用于新建.或者扩展专属于Migrations 这个API的扩展的数据库 然后在

EntityFramework Core技术线路(EF7已经更名为EF Core,并于2016年6月底发布)

官方文档英文地址:https://github.com/aspnet/EntityFramework/wiki/Roadmap 历经延期和更名,新版本的实体框架终于要和大家见面了,虽然还有点害羞.请大家多体谅! 下面正式进入主题: Entity Framework Core (EF Core) 下面是EF Core 的计划和技术线路,注意,这些计划是可能发现变化的,因为很多事是很难预测的.即便如此,我们还是尽可能保持计划的公开和透明,以解大家对EF Core期望,以及做出相应的安排. Sched

[转]EntityFramework Core技术线路(EF7已经更名为EF Core,并于2016年6月底发布)

本文转自:http://www.cnblogs.com/VolcanoCloud/p/5572408.html 官方文档英文地址:https://github.com/aspnet/EntityFramework/wiki/Roadmap 历经延期和更名,新版本的实体框架终于要和大家见面了,虽然还有点害羞.请大家多体谅! 下面正式进入主题: Entity Framework Core (EF Core) 下面是EF Core 的计划和技术线路,注意,这些计划是可能发现变化的,因为很多事是很难预测

SQLite EF Core Database Provider

原文链接 This database provider allows Entity Framework Core to be used with SQLite. The provider is maintained as part of the Entity Framework Core project. Supported Database Engines SQLite (3.7 onwards) Supported Platforms .NET Framework (4.5.1 onward

EF Core 快速上手——EF Core 入门

EF Core 快速上手--EF Core 介绍 本章导航 从本书你能学到什么 对EF6.x 程序员的一些话 EF Core 概述 1.3.1 ORM框架的缺点 第一个EF Core应用 ??本文是对<Entity framework in action>部分章节的翻译,某些场景也会附上笔者实践的Demo.尽管很认真的斟酌,但是水平有限,还请各位批评和斧正. ??Entity Framework Core, 或者 EF Core,是一个方便软件工程师访问数据库的库.有很多方法来构建这样的一个库