EFCore2.1中DbFirst和CodeFirst简单使用
程序员文章站
2024-02-01 11:27:52
EFCore中没有DbFirst了吧,应该都是Code First 先说说第一种,Code First From Database(DbFirst)数据库先行,这种方式就要命令行了...(特不喜欢命令行。。): 1.建好项目后通过 NuGet 安装所需依赖性: 可以右键项目通过管理NuGet程序包的 ......
efcore中没有dbfirst了吧,应该都是code first
先说说第一种,code first from database(dbfirst)数据库先行,这种方式就要命令行了...(特不喜欢命令行。。):
1.建好项目后通过 nuget 安装所需依赖性:
(1)microsoft.entityframeworkcore (2)microsoft.entityframeworkcore.design (3)microsoft.entityframeworkcore.sqlserver (4)microsoft.entityframeworkcore.sqlserver.design (5)microsoft.entityframeworkcore.tools
可以右键项目通过管理nuget程序包的方式安装,也可以通过命令安装(找到vs工具栏 ---> nuget 包管理器 ---> 程序包管理控制台):
注意选择默认项目
install-package microsoft.entityframeworkcore install-package microsoft.entityframeworkcore.tools install-package microsoft.entityframeworkcore.design install-package microsoft.entityframeworkcore.sqlserver install-package microsoft.entityframeworkcore.sqlserver.design
然后复制,粘贴,看到已用时间:xxxxxxx即可,
然后继续在程序包管理控制台再输入:
scaffold-dbcontext -connection "server=.;database=efcoredemo;uid=sa;pwd=123" microsoft.entityframeworkcore.sqlserver -outputdir "models"
-outputdir "models" 可不写,efcore中只能通过命令生成了,不能像以前ef6一样可以鼠标操作生成了,如果加上了则会在项目中添加models文件夹,生成的context和实体类都放到models文件夹中,如不加,实体则直接生成到项目中
最后在控制台测试一下
再试试第二种熟悉的code first(代码先行,跟以前ef几乎是一模一样),还是比较熟悉这个
前面步骤都是一样的,建好项目,安装依赖包,不过code first好像需要安装两个依赖包就可以了
microsoft.entityframeworkcore.sqlserver microsoft.entityframeworkcore
编写studnet和classinfo实体类
然后在编写context上下文类,需要继承dbcontext
public class codefirstcontext : dbcontext { public codefirstcontext() { } public codefirstcontext(dbcontextoptions options) : base(options) { } public dbset<student> student { get; set; } public dbset<classinfo> classinfo { get; set; } protected override void onconfiguring(dbcontextoptionsbuilder optionsbuilder) { if (!optionsbuilder.isconfigured) { optionsbuilder.usesqlserver("server=.;database=efcorecodefirst;uid=sa;pwd=123"); } } protected override void onmodelcreating(modelbuilder modelbuilder) { } }
基本上跟ef6差不多的,写好之后测试一下就ok了:
using (codefirstcontext db = new codefirstcontext()) { db.database.ensurecreated(); //数据库不存在则创建,存在则不管 db.add(new classinfo { classname = "软件二班" }); var result = db.savechangesasync().result; console.writeline(result > 0 ? "成功了" : "失败了"); }
上一篇: windows下mysql入门级基本使用方法_MySQL
下一篇: 开博记
推荐阅读
-
Fortran中function,subroutine, interface和module的简单使用
-
php中mysql连接和基本操作代码(快速测试使用,简单方便)_PHP
-
iOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)
-
navicat中创建存储过程、触发器和使用游标的简单实例(图文)
-
简单介绍Python中的filter和lambda函数的使用
-
navicat中创建存储过程、触发器和使用游标的简单实例(图文)
-
C#中BitConverter.ToUInt16()和BitConverter.ToString()的简单使用
-
php中mysql连接和基本操作代码(快速测试使用,简单方便)
-
mongodb 在 linux 中的安装和简单使用
-
解析iOS应用的UI开发中懒加载和xib的简单使用方法