月度归档:2021年10月

EntityFramework Core CLI Tools 几点坑

Entity Framework Core 2.0 Features | by Aram Koukia | Koukia

开发怎么可能离得开数据库呢~ 这里的EFC和以前的EF不是一个东西,就跟.net core和以前的.net不一样是一个道理。

Core这个家族可以说是完全跟开源接轨了,不管是运行方式,交互方式如果熟悉开源组件的同学就会感觉跟自己家一样,当然还没那么接地气,下面就是在用EFC CLI Tool时碰到的几个坑。

  1. 如果你的项目不是一个程序集,那么你不得不指定开始项目和目标项目就比如得这样:“dotnet ef list -p 目标项目目录 -s 开始项目目录”,这里我就很不理解,也困惑了我好一会,如果知道开始项目,那么作为上层程序集是可以找到下层级中程序集的dbcontext和Model。当然在文档中你可以找到这个说明,只不过我是事后才发现,试问有几个人的项目是只有一个程序集的。
  2. EF Core 6,目前是RC2,作为preview版本它默认需要你指定版本才能被安装,比如当前不指定版本他只给你装到5的latest。
  3. 需要指定一个Dbcontext,如果你有多个的话,它有一个查找顺序,是用的父类往下找的,如果碰到问题可以从这里作为突入口。
  4. 它支持从数据库导出Model,也支持从Model导入数据库,还支持从Model生成sql script。
  5. 生成scrpt最实用,这里推荐带上“-i|–idempotent”参数,不带上它会默认走一个事务提交所有Model,带上后每个Model都是分开的适用于没有严格migrations的项目。用–no-transactions可以关闭事务。
  6. “-p 和 -s”可以指定到项目文件或者项目目录,这就很开源范!~

Mac上使用SQL Server作为开发用数据库

SQL Server Management Studio (@mssqlserverssms) | Twitter

如果你有不得不用sqlserver的理由,并且手上只有MAC时那么这篇文章可能对你有帮助。

第一个要解决的就是数据库的GUI管理软件,SQL Server Management Studio (SSMS)肯定是没办法在Mac上跑了,这里最佳的替代就是Azure Data Studio,看名字就知道它的作用就是管理Azure上的数据,所以不管是sql server也好还是postgresql也好都可以用它管理。装好之后会发现它绝对是在vs code同一个team弄出来的,连很多默认样式都一样,所以跟vs code一样在使用前你得装好一些必须的插件,这里不得不说sql admin包既然是没个人必装的,为啥不直接默认安装呢。装好后像下面这个样子。

Customize Azure Data Studio with Dashboard Widgets

有的同学在没有安装推荐的admin包前会发现不能创建新的数据库,没错,这种基本插件它默认也没装,对了,可能需要FQ。

另外它也提供profile等调试插件,工具还是很丰富的,虽然离ssms还有差距,如果是专职DBA就用回SSMS吧。