ASP.NET Core 开发-Entity Framework Core 1.0 Database First,ASP.NET Core 1.0 EF Core操作数据库。

Entity Framework Core 1.0 也已经发布了,可以适用于 .NET Core 1.0 及ASP.NET Core 1.0 。

EF Core RC2 时,使用的Code First: http://www.cnblogs.com/linezero/p/EntityFrameworkCore.html

EntityFrameworkCore SQLite 本篇文章同样以SQLite 数据库作为介绍Database First 开发。

目前 EF Core 1.0支持的数据库:

  • Microsoft SQL Server
  • SQLite
  • Postgres (Npgsql)
  • SQL Server Compact Edition
  • InMemory (for testing purposes)
  • DevArt has paid providers for MySQL, Oracle, and many other databases(第三方开发收费)

对于MySQL、Oracle 这些应该还要等待官方出驱动。

如果大家想ASP.NET Core 操作MySQL 可以参考我的这篇文章:http://www.cnblogs.com/linezero/p/NETCoreMySQL.html

现在正式开始Database First 开发。

新建项目

这里我们选择  ASP.NET Core Web Application (.NET Core) 

这里选择Web 应用程序,然后更改身份验证 改为 不进行身份验证

引用Entity Framework (EF) Core 1.0

引用 EF Core Sqlite

  1. Install-Package Microsoft.EntityFrameworkCore.Sqlite

引用 EF Core Tool

  1. Install-Package Microsoft.EntityFrameworkCore.Tools Pre

引用 EF Core Sqlite Design

  1. Install-Package Microsoft.EntityFrameworkCore.Sqlite.Design

引用好以后我们在project.json -> tools 节点加上 "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"

  1. "tools": {
  2. "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
  3. "BundlerMinifier.Core": "2.0.238",
  4. "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
  5. "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
  6. },

生成实体

这里我就不新建数据库了,直接使用上次文章的数据库,来反向生成实体类。

将 efcoredemo.db 拷贝到 bin\Debug\netcoreapp1.0 文件夹下。

首先我们在 src\EFCoreDBFirst 文件夹 执行命令 dotnet ef 确保命令可以执行。

下面我们来生成实体:

  1. dotnet ef dbcontext scaffold "FileName=efcoredemo.db" Microsoft.EntityFrameworkCore.Sqlite

执行完成后,在项目目录也就生成了对应的实体类及对应context。

项目使用

首先我们要在 Startup.cs 的 ConfigureServices 方法添加以下代码:

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. services.AddDbContext<efcoredemoContext>();
  4. // Add framework services.
  5. services.AddMvc();
  6. }

新建一个 UserController

然后 在Views 添加一个 User 文件,然后添加对应的视图。

添加一个Register Action,再添加一个 Register 视图

  1. @model EFCoreDBFirst.Users
  2. @{
  3. ViewBag.Title = "用户添加";
  4. }
  5. <form asp-controller="User" asp-action="Register" method="post">
  6. <div class="form-group">
  7. <label asp-for="UserName" class="col-md-2 control-label">用户名:</label>
  8. <div class="col-md-10">
  9. <input class="form-control" asp-for="UserName" />
  10. <span asp-validation-for="UserName" class="text-danger"></span>
  11. </div>
  12. <label asp-for="Password" class="col-md-2 control-label">密码:</label>
  13. <div class="col-md-10">
  14. <input class="form-control" asp-for="Password" />
  15. <span asp-validation-for="Password" class="text-danger"></span>
  16. </div>
  17. <div class="col-md-offset-2 col-md-10">
  18. <input type="submit" value="保存" class="btn btn-default" />
  19. </div>
  20. </div>
  21. </form>

UserController.cs

  1. public class UserController : Controller
  2. {
  3. private efcoredemoContext _context;
  4.  
  5. public UserController(efcoredemoContext context)
  6. {
  7. _context = context;
  8. }
  9. // GET: /<controller>/
  10. public IActionResult Index()
  11. {
  12. return View(_context.Users.ToList());
  13. }
  14.  
  15. public IActionResult Register()
  16. {
  17. return View();
  18. }
  19.  
  20. [HttpPost]
  21. [ValidateAntiForgeryToken]
  22. public IActionResult Register(Users registeruser)
  23. {
  24. if (ModelState.IsValid)
  25. {
  26. _context.Users.Add(registeruser);
  27. _context.SaveChanges();
  28. return RedirectToAction("Index");
  29. }
  30. return View(registeruser);
  31. }
  32. }

程序运行起来:

http://localhost:5000/User/Register

列表展示: Index.cshtml

  1. @model IEnumerable<EFCoreDBFirst.Users>
  2.  
  3. @{
  4. ViewBag.Title = "用户";
  5. }
  6. <table class="table">
  7. <tr>
  8. <th>Id</th>
  9. <th>用户名</th>
  10. <th>密码</th>
  11. </tr>
  12.  
  13. @foreach (var item in Model)
  14. {
  15. <tr>
  16. <td>
  17. @Html.DisplayFor(modelItem => item.Id)
  18. </td>
  19. <td>
  20. @Html.DisplayFor(modelItem => item.UserName)
  21. </td>
  22. <td>
  23. @Html.DisplayFor(modelItem => item.Password)
  24. </td>
  25. </tr>
  26. }
  27. </table>

http://localhost:5000/User

参考文档:https://docs.efproject.net/en/latest/platforms/aspnetcore/existing-db.html

如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First的更多相关文章

  1. ASP.NET Core 开发 - Entity Framework (EF) Core

    EF Core 1.0 Database First http://www.cnblogs.com/linezero/p/EFCoreDBFirst.html ASP.NET Core 开发 - En ...

  2. Entity Framework (EF) Core学习笔记 1

    1. Entity Framework (EF) Core 是轻量化.可扩展.开源和跨平台的数据访问技术,它还是一 种对象关系映射器 (ORM),它使 .NET 开发人员能够使用面向对象的思想处理数据 ...

  3. Entity Framework (EF) Core工具创建一对多和多对多的关系

     一. EntirtyFramework(EF)简介 EntirtyFramework框架是一个轻量级的可扩展版本的流行实体框架数据访问技术,微软官方提供的ORM工具让开发人员节省数据库访问的代码时间 ...

  4. ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 Entity Fram ...

  5. ASP.NET MVC+EasyUI+Entity FrameWork 整合开发

    本文详细讲解怎么用ASP.NET MVC+EasyUI+Entity FrameWork 来开发一个项目 对于ASP.NET MVC的Jscript库,主要引用 <script type=.mi ...

  6. [UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)

    前言 本文中,您将创建一个通用应用程序(UWP),使用Entity Framework Core(Entity Framework 7)框架在SQLite数据库上执行基本的数据访问. 准备: Enti ...

  7. 在Asp.Net Core 5 中使用EF Core连接MariaDB

    升级到Asp.Net Core 5,使用EF Core连接MariaDB,使用的Nuget包Pomelo.EntityFrameworkCore.MySql也升级到了5.0.0-alpha.2,然后发 ...

  8. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

    在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...

  9. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之目录导航

    ASP.NET MVC with Entity Framework and CSS是2016年出版的一本比较新的.关于ASP.NET MVC.EF以及CSS技术的图书,我将尝试着翻译本书以供日后查阅. ...

随机推荐

  1. 基于百度翻译API开发属于自己的翻译工具

    你是否每天使用着网页翻译工具?你是否遇到过这种情况,上网过程中遇到一个很长的单词但是又不能复制,要开两个浏览器,一个打开百度翻译,照着另一个网页输入单词?你安装了各种翻译软件后,又删除,只因忍受不了那 ...

  2. C#Light(包括unity一切C#环境可用嵌入式脚本)0.10B稳定版发布,功能已定型

    yo,如题,这个呕心沥血的脚本语言终于完成了. 后面我会: 1.逐渐做一些例子.说明 2.逐渐测试我能获取到的dotnet环境,保证在所有的平台都能正常执行 3.积极推广 0.10B版本较之前的区别主 ...

  3. Amazon Dynamo论文学习

    Dynamo是一个key-value数据存储系统,去中心化.高可扩展.高可用,使用一致性哈希来分区和备份数据,使用数据版本化来实现一致性. 核心技术 CAP:一致性.可用性.扩展性 一致性哈希:切分数 ...

  4. IOS 公共类-数字处理

    1.写一个方法,调用的时候交换两个数的值 -(void) swap:(int*)a andNumber:(int*)b{ int temp = *a; *a = *b; *b = temp; } 调用 ...

  5. Repeater绑定数组并显示其值

    web开发中,尤其是对于数据展示,不得不说Repeater是一个万能的控件,而且使用也很方便. 在ASP.NET中将数组绑定到Repeater中请问如何在Repeater前台页面中显示该数组的值? s ...

  6. 关于STM32的外部引脚中断的问题

    今天想用自己以前的比较干净的工程模板做一个东西,,,,,,,在添加上引脚中断的时候,,突然想知道自己配置的中断优先级是否正确执行,,,,, 以前刚学习32的时候测试过是可以的,,不过今天发现了一个大问 ...

  7. paip.python错误解决24

    paip.python错误解决 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/attilax ...

  8. 每天一个linux命令(31): /etc/group文件详解

    Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件.linux /etc/group文件是有关于系统管理员对用户 ...

  9. ubuntu下在apache部署python站点

    ubuntu下在apache部署python站点 我的是ubuntu14 32为的虚拟机,默认安装的python为3.4 环境:apache + mysql + django + python3 软件 ...

  10. 11.按要求编写Java应用程序。 (1)创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。 编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速 度设置为100,载重量设置为100;另 一个能为对象的所有属性赋值; (2)创建主类: 在主类中创建两个机动车对象。

    package java1; public class Che { //属性 public String nub; public int speed; public double weight ; C ...