.NET

技术

Entity Framework Core SQLite provider向已存在的表中添加外键

SQLite本身不支持向已创建的表中添加外键,类似的限制还有很多,比较蛋疼,具体可以参见SQLite Limitations [https://docs.microsoft.com/en-us/ef/core/providers/sqlite/limitations]。 项目中,如果是测试的时候,数据不是很重要的话,最方便的方法就是把已经创建的Migrations包括ModelSnapshot都删掉,重新Add-Migration重建数据库。 对于已经发布的应用,数据库不能删了创建的话,可以“曲线救国”。 假设需要给TableA添加一个需要建立外键的字段ColumnA,为了增加难度,假设TableB中的Column B是TableA的外键。具体操作方法如下: 1. 先在代码中TableA里添加ColumnA(不设置外键),Add-Migration,更新到线上数据库 2. 将本地的数据库改名为database-backup,删除项目中所有Migrations和ModelSnapshot,创建一个RebuildDatabase的Migration,创建全新的数据库,从新数据

技术

更新“Microsoft.NETCore.App”到1.0.1出现502.5错误的问题

今天白天遇到一个问题,花了很长时间才解决。记录下。 问题是这样的,我是个强迫症,如果发现有可以更新的包,我肯定会去更新。 新建了一个ASP.NET Core的Api项目,发现有包可以更新,于是通过Nuget自动更新。更新完之后,出现第一个坑。 原先的 "Microsoft.NETCore.App": { "version": "1.0.0", "type": "platform" } 更新之后会丢失"type": "platform",变成 "Microsoft.NETCore.App": "1.0.

技术

“Bad Request - Invalid Hostname”的解决办法

最近在做一个微信端的应用,除了在本地测试之外,有时候还需要在手机上进行测试。 假设我的手机和PC在同一内网内,PC的IP是192.168.1.2,Website的端口是12345。 我的第一反应是,我应该在手机上通过http://192.168.1.2:12345来访问我的站点。 然而,我得到了这样一个错误: Bad Request - Invalid Hostname ------------------------------------------------ HTTP Error 400. The request hostname is invalid. 方法很简单,Visual Studio 2015的项目目录中会有一个.vs的文件夹,打开.vs\config\applicationhost.config ,找到目标站点的配置节点,例如: <site name="Demo.Website&

技术

ASP.NET Core初体验

前两天试了下ASP.NET Core MVC,很好用。微软整合了大量前端工具,npm、Bower都可以很方便地使用了,甚至对Grunt、Gulp这类的工具都有集成一些任务管理器,这对前端来说,是一件鼓舞人心的事。 ASP.NET Core MVC的推荐目录结构也进行了调整,新增了wwwroot 这样一个静态目录,js、css、图片都可以放这里面,而Bower管理的第三方前端库则会自动下载到wwwroot里面的lib目录下。作为强迫症的我,wwwroot 这个目录必须全部是自动生成的。通过Gulp,可以很轻松的实现这一点。继承原先的目录结构习惯,在解决方案下建立Scripts、Styles、Images文件夹,里面用来放原始的js、less和图片,然后通过Gulp进行合并、压缩、复制到 wwwroot目录下,这样wwwroot这个目录就可以在git里面排除掉了。完美。而在ASP.NET Core的项目目录下默认的.gitignore 文件里,微软其实是已经有这样的想法: # Uncomment if you have tasks