使用Way.EntityDB进行Entity Framework Core数据库建模

Way.EntityDB是一个基于EF Core的数据层框架,它取消了EF Core的Migration机制,因为Migration并不是通用的,比如说sql server生成的migration,如果换成sqlite,运行时会报错的,也就是数据库不能更换。

Way.EntityDB内置建模工具,通过图形化建表,生成Model对象代码,并且它会把表结构的修改过程,全部记录下来,涵盖在Model代码里面,所以,在新的代码运行时,数据库也会自动更新到最新结构。

 举个例子,当你把一个字段的名字从column1,更改为column2,EF 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 6062

6062是本机任意一个没有使用的端口号,表示以6062为端口,创建一个服务器工作空间

运行run6062.bat,启动服务器端

使用Way.EntityDB进行Entity Framework Core数据库建模

 

运行客户端

编译并运行EJClient.exe

server url:https://localhost:6062

user name:sa

password:1

使用Way.EntityDB进行Entity Framework Core数据库建模

登录进去,由于没有工程项目,所以界面空白,点击【project】菜单,创建一个项目

使用Way.EntityDB进行Entity Framework Core数据库建模

右键点击【Database】,新建一个数据库

使用Way.EntityDB进行Entity Framework Core数据库建模

再新建一个数据模块UserInfo

使用Way.EntityDB进行Entity Framework Core数据库建模

双击UserInfo,在数据模块里面,空白处点击右键,新建数据表

使用Way.EntityDB进行Entity Framework Core数据库建模

 

 

 

使用Way.EntityDB进行Entity Framework Core数据库建模



使用Way.EntityDB进行Entity Framework Core数据库建模

这样,一张数据表就创建完成

编程使用数据表

新建一个.net core 控制台项目

使用Way.EntityDB进行Entity Framework Core数据库建模

给这个项目安装nuget包:Way.EntityDB

然后,回到EJClient,在TestDB处点击右键,点击【生成数据库模型代码】

使用Way.EntityDB进行Entity Framework Core数据库建模

保存到刚才创建的项目里面

使用Way.EntityDB进行Entity Framework Core数据库建模

使用Way.EntityDB进行Entity Framework Core数据库建模

 

 这样,Model类就准备好了,开始写代码

using System; using System.Linq; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var db = new MyDB.DB.TestDB("data source='F:\\mytestdb.dat'", Way.EntityDB.DatabaseType.Sqlite); //插入数据 var user = new MyDB.UserInfo() { UserName = "Jack", Password = "123" }; //插入到数据库 db.Update(user); //从数据库查询数据 var userlist = (from m in db.UserInfo select m).ToArray(); //修改数据 var jack = db.UserInfo.FirstOrDefault(m => m.UserName == "Jack"); jack.Password = "567"; db.Update(jack); //删除数据 db.Delete(jack); } } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzppf.html