如何做网站流量报告,带数据库的网页怎么制作,网业游戏大全,在哪里找做网站的客户dotnet core 2.0 发布已经好几天了#xff0c;期间也把原来 dotnet core 1.1 的 MVC 项目升级到了 2.0#xff0c;升级过程还是比较顺利的#xff0c;变动也不是太多。升级的过程中也少不了 Entity Framwork Core 的升级#xff0c;在这篇文章中主要介绍下 MySql 数据库使用…dotnet core 2.0 发布已经好几天了期间也把原来 dotnet core 1.1 的 MVC 项目升级到了 2.0升级过程还是比较顺利的变动也不是太多。升级的过程中也少不了 Entity Framwork Core 的升级在这篇文章中主要介绍下 MySql 数据库使用 Entity Framwork Core 2.0 如何进行 Code First、Database First 及数据库迁移Migration虽然比较基础但是做到尽量详细。本文所有示例代码已经提交到 GitHubhttps://github.com/starts2000/EFCoreDemo如果觉得对你有帮助就给个 Star 吧。
一、工具及环境
Visual Studio 2017 15.3.NET CORE 2.0 SDK
二、Entity Framwork Core 2.0 MySql Code First 及 数据库迁移Migration
1、创建 .NET Core 类库项目 【Starts2000.EFCoreCodeFirst】
2、添加 User 实体类 public class User{ public int Id { get; set; }[MaxLength(32), Required] public string Aaccount { get; set; }[MaxLength(32), Required] public string Password { get; set; }} 最终【Starts2000.EFCoreCodeFirst】项目结构如下 3、创建 .NET Core 控制台应用项目 【Starts2000.EFCoreCodeFirst.Test】
添加对 【Starts2000.EFCoreCodeFirst】项目的引用Nuget 添加 Microsoft.EntityFrameworkCore.Tools 及 Pomelo.EntityFrameworkCore.MySql注意勾上包括预发行版 的引用
4、编辑 Starts2000.EFCoreCodeFirst.Test.csproj 项目文件添加如下内容
ItemGroupDotNetCliToolReference IncludeMicrosoft.EntityFrameworkCore.Tools.DotNet Version2.0.0 //ItemGroup
最终内容如下
Project SdkMicrosoft.NET.SdkPropertyGroupTargetFrameworknetcoreapp2.0/TargetFrameworkApplicationIcon /OutputTypeExe/OutputTypeStartupObject //PropertyGroupItemGroupProjectReference Include..\Starts2000.EFCoreCodeFirst\Starts2000.EFCoreCodeFirst.csproj //ItemGroupItemGroupPackageReference IncludeMicrosoft.EntityFrameworkCore.Tools Version2.0.0 /PackageReference IncludePomelo.EntityFrameworkCore.MySql Version2.0.0-rtm-10058 //ItemGroupItemGroupDotNetCliToolReference IncludeMicrosoft.EntityFrameworkCore.Tools.DotNet Version2.0.0 //ItemGroup/Project 5、添加 TestDbContext 类注意把数据库连接字符串修改为自己的 public class TestDbContext : DbContext{ public DbSetUser User { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseMySql( serverlocalhost;databaseTestDb;usertest;password123456;);} protected override void OnModelCreating(ModelBuilder modelBuilder){ base.OnModelCreating(modelBuilder); //modelBuilder.EntityUser().HasIndex(u u.Aaccount).IsUnique(); }}
6、打开命令行窗口切换到 【Starts2000.EFCoreCodeFirst.Test】项目文件夹目录执行如下命令
dotnet ef migrations add InitialCreate 如果命令执行成功可以看到项目目录中新增了如下内容 7、执行 dotnet ef database update 命令 执行成功后可以看到数据库及表创建成功。 8、修改实体并把修改的内容更新到数据库 User 类的 Account 属性对应 User 表的 Account 列应该是唯一的前面忘记了设置唯一索引现在在 TestDbContext 中加上 public class TestDbContext : DbContext{ public DbSetUser User { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseMySql( serverlocalhost;databaseTestDb;usertest;password123456;);} protected override void OnModelCreating(ModelBuilder modelBuilder){ base.OnModelCreating(modelBuilder); modelBuilder.EntityUser().HasIndex(u u.Aaccount).IsUnique();}} 执行 dotnet ef migrations add UserTableUpdateAccount 命令 如果命令执行成功可以看到项目目录中新增了如下内容 接着按照 步骤7 的操作如果成功可以看到 User 表已经创建了 Account 的唯一索引 9、测试数据写入和读取
在 Main 函数中添加如下代码 static void Main(string[] args){ using(var context new TestDbContext()){context.User.Add(new Models.User{Aaccount CodeFirst-Test- DateTime.Now.ToString(yyyyMMddHHmmssfff),Password 123456});context.SaveChanges();Console.WriteLine(context.User.OrderByDescending(u u.Id).FirstOrDefault()?.Aaccount);}Console.ReadKey();} 把【Starts2000.EFCoreCodeFirst.Test】项目设置为启动项目编译运行 三、Entity Framwork Core 2.0 MySql Database First
1、新建 【Starts2000.EFCoreDbFirst】 项目
2、Nuget 添加 Pomelo.EntityFrameworkCore.MySql注意勾上包括预发行版 的引用
3、编辑 Starts2000.EFCoreDbFirst.csproj 项目文件添加如下内容 ItemGroupDotNetCliToolReference IncludeMicrosoft.EntityFrameworkCore.Tools.DotNet Version2.0.0 //ItemGroup
最终内容如下 Project SdkMicrosoft.NET.SdkPropertyGroupTargetFrameworknetcoreapp2.0/TargetFramework/PropertyGroupItemGroupPackageReference IncludePomelo.EntityFrameworkCore.MySql Version2.0.0-rtm-10057 //ItemGroupItemGroupDotNetCliToolReference IncludeMicrosoft.EntityFrameworkCore.Tools.DotNet Version2.0.0 //ItemGroup/Project 4、打开命令行窗口切换到 【Starts2000.EFCoreDbFirst】项目文件夹目录执行如下命令
dotnet ef dbcontext scaffold Serverlocalhost;User Idtest;Password123456;DatabaseTestDb Pomelo.EntityFrameworkCore.MySql
执行成功后项目增加了如下内容 5、创建 .NET Core 控制台应用项目 【Starts2000.EFDbFirst.Test】进行测试
添加对 【Starts2000.EFCoreDbFirst】项目的引用把 Main 函数修改为如下代码 static void Main(string[] args)
{ using (var context new TestDbContext()){context.User.Add(new User{Aaccount DbFirst-Test- DateTime.Now.ToString(yyyyMMddHHmmssfff),Password 123456});context.SaveChanges();Console.WriteLine(context.User.OrderByDescending(u u.Id).FirstOrDefault()?.Aaccount);}Console.ReadKey();} 把【Starts2000.EFCoreDbFirst.Test】项目设置为启动项目编译运行 参考文章
https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/migrationshttps://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql
相关文章
.NET Core 2.0 正式发布信息汇总.NET Standard 2.0 特性介绍和使用指南.NET Core 2.0 的dll实时更新、https、依赖包变更问题及解决.NET Core 2.0 特性介绍和使用指南Entity Framework Core 2.0 新特性体验 PHP under .NET Core.NET Core 2.0使用NLog升级项目到.NET Core 2.0在Linux上安装Docker并成功部署解决Visual Studio For Mac Restore失败的问题ASP.NET Core 2.0 特性介绍和使用指南
原文地址http://www.cnblogs.com/Starts_2000/p/mysql-efcore20-codefirst-dbfirst-migration-demo.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注