博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NetCore 中 EFcore的DbFirst和CodeFirst混合 使用注意
阅读量:5258 次
发布时间:2019-06-14

本文共 1289 字,大约阅读时间需要 4 分钟。

NetCore 最近很火热。笔者想把自己以前的旧项目迁移到NetCore平台。

 先用EFcore的DBFirst根据数据库创建实体类,然后加入数据库版本控制功能也就是EFcore的CodeFirst部分。


 

 引入包  Microsoft.EntityFrameworkCore 和 Microsoft.EntityFrameworkCore.SqlServer

Install-Package Microsoft.EntityFrameworkCoreInstall-Package Microsoft.EntityFrameworkCore.SqlServer

先 DBFirst一下 Scaffold-DbContext "Data Source=(localdb)\v11.0;Initial Catalog=master;Integrated Security=True;"  -OutputDir Models 很简单,但有时会报错:Build failed. 这个是因为整个项目编译不成功导致的,要确保项目能正常编译成功 再 CodeFirst一下 Add-Migration Init -c  EcolDbContext
-c 是指定 DbContext 根据自身情况可以不加 生成的项目目录如下

20181016075837_Init.cs 是指当时生成的日期Add-Migration Init的 Init组合而成 

 

在项目数据库里执行一下语句。 CREATE TABLE [dbo].[__EFMigrationsHistory] (     [MigrationId]    NVARCHAR (150) NOT NULL,     [ProductVersion] NVARCHAR (32)  NOT NULL ); 手动插入数据  insert  into   ( MigrationId ,ProductVersion) values ('20181016075837_Init' ,'init')

这样以后就可以用 CodeFirst模式升级数据库了 现在简单演示下如何添加表 新建类TestTableData
1   public class TestAddData2     {3         public long Id { get; set; }4 5         public string Name { get; set; }6     }
在DBContext类里加  
public virtual DbSet
TestAddData { get; set; }

执行 包管理命令

Add-Migration AddTable -c  EcolDbContextupdate-database   -Context  EcolDbContext

 

其他修改也一样


 

希望对大家有帮助,谢谢观看

 
 

转载于:https://www.cnblogs.com/aion111/p/9798933.html

你可能感兴趣的文章
Not enough free disk space on disk '/boot'(转载)
查看>>
android 签名
查看>>
vue项目中使用百度统计
查看>>
android:scaleType属性
查看>>
SuperEPC
查看>>
mysql-5.7 innodb 的并行任务调度详解
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
Java项目xml相关配置
查看>>
三维变换概述
查看>>
vue route 跳转
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Linux中防火墙centos
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
FancyCoverFlow
查看>>
JS博客
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>