【问题标题】:VS 2019 doesn't model stored procedures correctly but VS 2017 does. Is there a known difference?VS 2019 没有正确建模存储过程,但 VS 2017 可以。有已知的区别吗?
【发布时间】:2019-04-30 18:39:35
【问题描述】:

我有一个使用 EF 6.2(数据库优先)的 VS 2019 解决方案。当我导入一个存储过程,然后将属性配置为返回一个复杂类型时,设计器并没有将存储过程对象放在模型的上下文中。但是,您可以在模型浏览器的“函数导入”和“存储过程/函数”中看到存储过程。反复尝试。

然后,我在 VS 2017 中打开了相同的解决方案。从模型浏览器中删除了存储过程,然后再次导入存储过程(并将复杂类型分配为返回)。编译后存储过程对象在模型上下文中找不到。

我已经能够重现这个。很奇怪。不是权限问题,因为导入在 VS2017 中有效,但在 VS2019 中无效。两者中的 EF 版本相同(这是相同的解决方案)。

【问题讨论】:

  • 以下是我可以重现的方法:使用 VS 2017 创建解决方案,以 .NET 4.6.1 为目标。添加 EF 6.2。添加一个数据库(首先是数据库)。添加一个表,也许还有一个存储过程。编译。然后,使用 VS 2019 打开相同的解决方案。如果我随后尝试添加另一个表或存储过程,它会显示在 EDMX 设计器的表面上,但即使在编译后,也不会显示在模型或实体中。

标签: visual-studio entity-framework stored-procedures


【解决方案1】:

这是一个错误。在这里阅读:https://github.com/aspnet/EntityFramework6/issues/705

在 VS 16.1 发布之前,解决方法(非常简单)是右键单击 .tt 文件并“运行自定义工具”

【讨论】:

  • 我在 EF 中的存储过程也遇到了一些问题,我认为这会对我有所帮助,但我遇到了另一种形式的问题
猜你喜欢
  • 2019-05-13
  • 2019-10-10
  • 2013-06-09
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 2011-05-23
相关资源
最近更新 更多