EF Core CodeFirst实践 ( 使用MS SqlServer)
这里使用 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./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 updatedotnet ef database update 用我们刚刚创建的迁移来更新数据库。
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>
然后就可以运行啦
EF Core CodeFirst实践 ( 使用MS SqlServer)的更多相关文章
- 使用EF Core+CodeFirst建立ASP.NET Core MVC项目
本篇随笔介绍如何使用.NET Core+EF Core创建Web应用程序 首先借用官网的话简单介绍一下ASP.NET Core ASP.NET Core 是一个跨平台的高性能开源框架,用于生成基于云且 ...
- EF Core CodeFirst数据库自动迁移
开发过程中都会遇到数据库数据结构更新的问题,怎么对数据库更新进行版本控制呢? 不同的项目对数据库版本更新控制的方式不同,常用的有第三方Evolve,开发人员将数据库更新脚本按照版本号的放在一起,然后执 ...
- .Net Core建站(1):EF Core+CodeFirst数据库生成
emmm,本来想着用Core做一个小项目玩玩的,然后肯定是要用到数据库的, 然后想,啊,要不用CodeFirst,感觉很腻害的样子,于是,一脸天真无邪的我就踏入了一个深不见底的天坑... 本来想着,应 ...
- .Net Core建站(2):EF Core+CodeFirst数据库迁移
上一篇的话,说了下怎么使用EF7 实现 CodeFirst去生成数据库, 其实还有好多问题的,这次一点一点的解决吧,都挺简单,不过零零散散的,, 1.读取配置文件,获得链接字符串 2.使用数据库进行增 ...
- 从零开始搭建前后端分离的NetCore(EF Core CodeFirst+Au)+Vue的项目框架之二autofac解耦
在 上一篇 中将项目的基本骨架搭起来能正常跑通,这一篇将讲到,如何通过autofac将DbContext和model进行解耦,只用添加model,而不用在DbContext中添加DbSet. 在这里就 ...
- 从零开始搭建前后端分离的NetCore2.2(EF Core CodeFirst+Autofac)+Vue的项目框架之四Nlog记录日志至数据库
为什么要进行日志记录呢?为什么要存至数据库呢?只能说日志记录是每个系统都应当有的. 好的日志记录方式可以提供我们足够多定位问题的依据.查找系统或软件或项目的错误或异常记录.程序在运行时就像一个机器人, ...
- 第一节:EF Core简介和CodeFirst和DBFirst两种映射模式(以SQLite和SQLServer为例)
一. EF简介 1. 定义 Entity Framework (EF) Core 是轻量化.可扩展.开源和跨平台的数据访问技术,它还是一种对象关系映射器(ORM),它使.NET 开发人员能够使用面向对 ...
- EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型
官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新 ...
- 使用Asp.Net Core MVC 开发项目实践[第二篇:EF Core]
在项目中使用EF Core还是比较容易的,在这里我们使用的版本是EF Core 2.2. 1.使用nuget获取EF Core包 这个示例项目使用的是SQLSERVER,所以还需要下载Microsof ...
随机推荐
- NET出现频率非常高的笔试题
又到了金三银四的跳槽季,许多朋友又开始跳槽了,这里我简单整理了一些出现频率比较高的.NET笔试题,希望对广大求职者有所帮助. 一..net基础 1. a=10,b=15,请在不使用第三方变量的情况下 ...
- AliOS编译安装MyRocks
MyRocks是facabook版将自主研发的MySQL分支,其源码位于为:https://github.com/facebook/mysql-5.6/ 首先需要安装以下: sudo yum inst ...
- 关于css样式2
css文本 CSS 文本属性可定义文本的外观. 通过文本属性,您可以改变文本的颜色.字符间距,对齐文本,装饰文本,对文本进行缩进,等等. 缩进文本 把 Web 页面上的段落的第一行缩进,这是一种最常用 ...
- jacoco原理
Jacoco的原理 转自:kingzzm 的博客,感谢~ 覆盖率计数器 Jacoco使用一系列的不同的计数器来做覆盖率的度量计算.所有这些计数器都是从java的class文件中获取信息,这些class ...
- cookies的获取,删除,设置
cookies,sessionStorage 和 localStorage 的区别? 1.cookie在浏览器和服务器间来回传递. sessionStorage和localStorage不会: 2.s ...
- 关于css的新思考
因为被派去协助别的组,有机会写了一下react,发现ICE做的那一个套件用来搭建后台系统真的太给力了(插一句必入table组件其实是可以把删除添加座位基础方法加进去的).因为看了demo的代码以及对于 ...
- 团队开发——冲刺2.g
冲刺阶段二(第七天) 1.昨天做了什么? 编写软件计划书第三阶段:整理用户体验建议:据用户对界面的要求,把小球改头换面,借鉴超级马里奥叔叔的道具们. 2.今天准备做什么? 最后的美工,统一整合: 测试 ...
- 如何判断pc或者移动端
<script type="text/javascript"> var userAgentInfo = navigator.userAgent; var Agents ...
- What is the ViewPort ? Why we need it .
See also : http://stackoverflow.com/questions/14775195/is-the-viewport-meta-tag-really-necessary htt ...
- MySQL - MySQL++在c++11环境下接口设计
安装官方提供的mysqlconnect后,可以使用mysql++库,在官方的C API上再次做一个c++面向对象封装. 这里mysql++的安装依赖于mysql-connector-c.安装参考:ht ...