广州网站开发银天科技小编在网站开发过程中,使用的是VS2017中的MVC5,在使用LINQ查询的时候碰到了问题外键ID列名无效的问题。
实体类明明没有的外键名,EF却使用了生成的外键ID名,而这个外键名在数据库是没有的。
这是因为在EF6中,外键的命名规范是原表名+ID,如果找不到表名,EF会自动生成一个外键ID名。
那么我们怎么解决呢?我们需要在实体类里面声明这个外键,这EF就不会自动生成一个数据库没有的外键了。
如下图:
我们再执行SQL语句,看看,问题是不是迎刃而解了?
这种做法是针对数据库外键命名不规范的做法。
我们在用EF和MVC开发的时候,构建数据库的外键要按照命名规范,就是外键表名加ID来作为外键名,就不会有这个错误了。
如果你有更多问题不懂,请持续关注广州网站开发银天科技。