efcore mysql数据库codefirst生成
添加引用
- microsoft.entityframeworkcore
- microsoft.entityframeworkcore.tools
- pomelo.entityframeworkcore.mysql
创建实体对象
这里创建两个实体对象,顺便演示添加外键的效果
public class tuser { public int id { get; set; } public string username { get; set; } public string password { get; set; } public icollection<trole> troles { get; set; } }
public class trole { public int id { get; set; } public string name { get; set; } }
生成数据表时,属性“id”默认成为自增的主键。
上述两个实体对象生成的数据表中,trole中会包含tuser的外键,默认命名为tuserid。
创建上下文对象
public class mydbcontext:dbcontext { public mydbcontext(dbcontextoptions<mydbcontext> options) : base(options) { } public dbset<tuser> users { get; set; } public dbset<trole> roles { get; set; } protected override void onmodelcreating(modelbuilder modelbuilder) { base.onmodelcreating(modelbuilder); } }
将根据此文件生成数据库,把想要生成数据表的实体类型以上面代码的形式作为属性mydbcontext为自定义的数据库上下文名称,由用户自己起名。其他代码可保持不变。
添加数据库连接字符串
在appsettings.json中加入连接字符串(下方绿底部分):
{ "logging": { "loglevel": { "default": "warning" } }, "allowedhosts": "*", "connectionstrings": { "mydbcontext": "server=localhost;database=mydb;user=myusername;password=mypwd;" } }
localhost替换为你的mysql地址,mydb为将要生成数据表的数据库名称,myusername为mysql的用户名,mypwd为mysql的密码。
添加数据上下文服务
在startup类的configureservices方法中添加如下代码
services.adddbcontext<mydbcontext>(options => options.usemysql(configuration.getconnectionstring("mydbcontext")));
此代码将上面我们编写的mydbcontext这个类注册为数据上下文的服务,后续可通过di方便地调用。configuration.getconnectionstring(string name)获取appsettings.json中“connectionstrings”这部分中对应名称的字符串。
生成数据库
用vs2019的话,直接菜单栏“工具”-nuget包管理器-程序包管理器控制台。
在打开的窗口中输入如下两个命令
- add-migration initialcreate
- update-database
第一个命令会生成一个文件,记录所有我们代码编写对数据库的影响,生成的文件自动放入migrations文件夹下,此文件夹也自动生成,第一个命令中的“initial create”用来命名此次数据库操作,可自己起名。
第二个命令将会根据第一个命令生成的迁移文件对数据库进行操作。
完成
此时,mysql数据库中应该就可以看到tuser和trole两个数据表了。
上一篇: Python3调用百度AI识别图片中的文字功能示例【测试可用】
下一篇: 鸡蛋炒西红柿的做法有哪些
推荐阅读
-
使用EF CodeFirst连接MySql数据库
-
EFCore 通过实体Model生成创建SQL Server数据库表脚本
-
MySQL数据库生成数据库说明文档
-
dedecms生成文档数据库崩溃 mysql daemon failed to start
-
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
-
efcore mysql数据库codefirst生成
-
MVC+EF6-CodeFirst 连接MySQL并创建数据库和表_Demo
-
NetCore +EFCore+SqlServer根据数据库生成实体类到项目中
-
关于MySql使用EFCore CodeFirst 自定义RowVersion并发字段的解决办法
-
通过T4模板生成数据库实体类,妈妈再也不用担心我用CodeFirst了!!!