在Nuget控制台使用Scaffold-DbContext命令生成数据库的DbContext时,连接字符串使用了SQL2005的数据库,结果生成时出现错误:
列名 'has_filter' 无效。
列名 'filter_definition' 无效。
查阅EntityFrameworkCore的源码时发现生成时访问了系统视图sys.indexes中的以上两个列,但是查看SQL2005数据库发现没有这两个列,SQL2008以上才有。
在不升级数据库的情况下,有什么办法解决这问题?或者说我如果把EntityFrameworkCore的源码下载下来重新编译过,要怎么让它在Nuget控制台生效使用?
EF Core 要求最低SQL 2008 的。如果你无法SQL 2008,就只能不要用EF CORE了。
Entity Framework Core 不支持 SQL Server 2005
自己用t4模板生成解决了这个问题,可是又碰到新的问题,视图没办法自动映射到对应的实体集合中。算了,不用efcore了,还是用回PetaPoco吧。