微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Microsoft Entity Framework 6、NET 4.7 映射 PostgreSQL 表函数的问题

如何解决使用 Microsoft Entity Framework 6、NET 4.7 映射 PostgreSQL 表函数的问题

这是场景:

我有一个 WebApi 项目(使用 visual Studio 2019 制作)ORMEntity Framework 6 使用 .net Framework 4.7 制作。 我知道使用 Core 可能会更好,但该项目基于一些尚未翻译的自定义库。

根据项目要求,我使用 Postgresql 作为数据库,在我的情况下,版本是 12.4。通常,我有一些存储过程和一些表函数,我想通过 WebApi 应用程序调用它们。

我遇到的问题是:

  1. 如果我尝试通过 db first 方法通过 EF6 映射存储过程或表函数,使用向导,函数和过程出现在列表中,但在我选择它们后什么也没有发生。而在 DbSet 类中,这些方法不会出现。

  2. 如果我尝试手动映射(它非常复杂),最后将方法应用到模型和类中。但是如果你运行它会出现类似的错误:“值超出可用范围”

  3. 如果我尝试使用 Code First数据库进行逆向工程,存储过程和函数不会出现在向导中。在这种情况下,我没有尝试手动映射,我对 Code First 不太满意。

  4. 因为我也有 Devart EntityDeveloper,所以我也尝试使用这个产品来映射过程和函数:映射过程很简单,但是运行程序我收到了同样的错误

澄清:在我的项目中,实体上的所有操作 CRUD 都正常工作,在以前的项目中,我已经使用 sql Server 使用存储过程和表函数,没有任何问题。

由于问题与微软向导有关,无法在此报告部分代码。 在此 link,您将找到重现问题的最小解决方案和数据库转储。

也许有人已经专门使用 Postgresql 和 EF6 进行存储过程和表函数映射的经验,可以给我一些建议。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。