教学督导网站建设报告,制作网站的花多少钱,江苏建设网官方网站,扬州抖音推广公司Way.EntityDB是一个基于EF Core的数据层框架#xff0c;它取消了EF Core的Migration机制#xff0c;因为Migration并不是通用的#xff0c;比如说sql server生成的migration#xff0c;如果换成sqlite#xff0c;运行时会报错的#xff0c;也就是数据库不能更换。Way.Ent… Way.EntityDB是一个基于EF Core的数据层框架它取消了EF Core的Migration机制因为Migration并不是通用的比如说sql server生成的migration如果换成sqlite运行时会报错的也就是数据库不能更换。Way.EntityDB内置建模工具通过图形化建表生成Model对象代码并且它会把表结构的修改过程全部记录下来涵盖在Model代码里面所以在新的代码运行时数据库也会自动更新到最新结构。 举个例子当你把一个字段的名字从column1更改为column2EF Core生成的migration就是把column1删除并添加一个column2这样column1的现有数据就会丢失。而EntityDB则不一样它只会把column1改名为column2因为它记录的是表结构修改的过程而不是匹对Model类的前后变化。 Way.EntityDB源码位置https://github.com/simpleway2016/EntityDB启动服务器端Way.EntityDB是允许多人同时使用所以分为服务器和客户端。下载源码编译后在Debug/netcoreapp2.0文件夹里面创建一个批处理文件run6062.bat内容如下dotnet Way.EJServer.dll 60626062是本机任意一个没有使用的端口号表示以6062为端口创建一个服务器工作空间运行run6062.bat启动服务器端 运行客户端编译并运行EJClient.exeserver url:https://localhost:6062user name:sapassword:1登录进去由于没有工程项目所以界面空白点击【project】菜单创建一个项目右键点击【Database】新建一个数据库再新建一个数据模块UserInfo双击UserInfo在数据模块里面空白处点击右键新建数据表 这样一张数据表就创建完成 你必须掌握的Entity Framework 6.x与Core 2.0 作者汪鹏 当当 广告 购买 编程使用数据表新建一个.net core 控制台项目给这个项目安装nuget包Way.EntityDB然后回到EJClient在TestDB处点击右键点击【生成数据库模型代码】保存到刚才创建的项目里面 这样Model类就准备好了开始写代码从代码可以看到虽然也是EF Core但由于禁用了ef的数据缓存机制所以不能使用SaveChanges去同步数据库可以使用Insert Update Delete等方法同步数据库禁用缓存机制可以避免程序员在编程的时候混乱有时候想把数据取出来看看现在的数据状态但谁知道取的是缓存里面的对象禁用缓存机制对于大数据量的查询也可以节约内存提供效率因为不再使用的对象不会保存在内存里面所以整体性能应该和使用ADO.Net差不多编写触发器 Way.EntityDB支持类似触发器的功能。添加一个ActionCapture类class UserInfoTrigger : Way.EntityDB.ActionCaptureMyDB.UserInfo 表示这个类捕获的是UserInfo表的事件这时候这个类还不能起作用必须在程序启动时把它实例化注册到DBContext里面 static Program(){Way.EntityDB.DBContext.RegisterActionCapture(new UserInfoTrigger());}在ActionCapture类里面只要override各个方法就可以实现各种事件的捕获。级联删除 EJClient可以设置表之间的级联删除关系并且被级联删除的数据同样可以被你编写的触发器捕捉到。现在我们新建一张数据表FamilyInfo双击UserInfo打开属性框切换到【级联删除】项添加一个级联删除关系导航属性一对一虽然UserInfo和FamilyInfo在数据库中并没有建立关系但是从系统设计上来说他们是有关系的所以在UserInfo里面如果可以直接访问FamilyInfo会比较方便所以可以给他们添加导航属性首先我们假设他们是一对一的关系。打开UserInfo属性窗口切换到【导航属性】并添加一个名称为Family的属性然后打开FamilyInfo属性窗口添加一个User属性这里要注意UserInfo里面的Family属性不需要选择ForeignKey而FamilyInfo的User属性必须选择ForeignKey接着用EJClient生成Model代码然后代码我们可以这样写了var montherName jack.Family.MotherName;直接可以取到母亲姓名不需要到数据库再取一遍 导航属性一对多 如果UserInfo和FamilyInfo是一对多的关系那么打开userinfo对话框把导航属性改为这样这时候就必须选择ForeignKey了用工具再次生成Model代码这次的代码就是这样写了变更数据库类型如果在开发过程中你要变更数据库类型只需要更改连接字符串和类型即可 var db new MyDB.DB.TestDB(server192.168.136.137;uidsa;pwdSql12345678;DatabaseTestDB, Way.EntityDB.DatabaseType.SqlServer);这样就转而使用SqlServer数据库原文地址https://www.cnblogs.com/IWings/p/9304874.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com