MVC-5 对存储过程使用复杂类型的函数;创建视图给出错误:'无法检索 MyProject.Models.Movies_Result 的元数据

Posted

技术标签:

【中文标题】MVC-5 对存储过程使用复杂类型的函数;创建视图给出错误:\'无法检索 MyProject.Models.Movies_Result 的元数据【英文标题】:MVC-5 Using Complex type functions for stored procedures; creating Views gives error:'Unable to retrieve metadata for MyProject.Models.Movies_ResultMVC-5 对存储过程使用复杂类型的函数;创建视图给出错误:'无法检索 MyProject.Models.Movies_Result 的元数据 【发布时间】:2019-08-29 16:21:49 【问题描述】:

我已经编写了一些存储过程 (SP) 作为 DBMS 主题的作业。现在我必须在客户端使用这些 SP。所以我选择了MVC。

这里我通过右键单击“模型浏览器”中显示的 SP 名称来使用“添加导入函数”来为 SP 创建新函数。

我能够创建使用 Simple SP 函数的视图(不涉及任何 JOINS)。但是当我尝试创建使用包含 JOINS(复杂类型函数)的函数的视图时,它会引发以下错误:

运行所选代码生成器时出错:'无法检索 myProject.Models.Movies_Result 的元数据

我尝试了不同的方法,例如更新 EF 版本和删除实体之间的关系,但没有任何用处。

如果有其他方法可以通过更少关注代码而更多关注 DBMS(因为这是我正在学习的内容),请提供其他方法来创建客户端应用程序。

谢谢。

【问题讨论】:

这不是一个好建议,但如果您只想学习 DBMS 而不是 .NET,那么您应该简单地使用 DBCommand 来调用您的存储过程而不是实体框架。这将使 EF 变得简单而不是复杂。 @Haroonnasir 谢谢你的帮助。我一定会尝试 DBCommand。你能帮我解决上面提到的问题吗,再次感谢。 上述问题可能是因为 JOINS 由其中不同的表数据组成,并且要为它们创建视图,您的模型还应该具有其他表的属性,或者您可能必须创建一个ViewModel 包含 JOINS 中涉及的相应表的所有模型。或者可能是这个问题。看看这个HERE 感谢您的快速回复。从存储过程函数生成的类具有所有必需的字段,包括那些外键字段。我想是的,我需要创建 ViewModel。会让你知道 VM 如何为我工作。再次感谢。 【参考方案1】:

删除数据上下文类(图中突出显示)起作用并创建了视图。

【讨论】:

以上是关于MVC-5 对存储过程使用复杂类型的函数;创建视图给出错误:'无法检索 MyProject.Models.Movies_Result 的元数据的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 视图触发器函数存储过程

mysql数据库之 存储引擎事务视图触发器存储过程函数流程控制

Mysql学习---视图/触发器/存储过程/函数/索引 180101

视图 触发器 事务 函数 存储过程

数据库存储过程和视图一般啥时候用

SQLserver 2008同步复制创建后新增表/函数/存储过程(不重新初始化快照)