问题标签 [ef-postgresql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
706 浏览

entity-framework - 使用 Postgresql 进行简单查询时实体框架的性能不佳

在我的新项目中,我热衷于在 Postgresql 上使用 .NET Entity Framework。所以我首先比较了 Entity Framework 和简单 SQL 查询的性能。为此,我开发了一个示例桌面应用程序并在两种模式下运行它,即。在多线程环境中使用实体框架和简单的 SQL 查询。我发现 Entity Framework 的性能比 SQL 调用低 50%。我在这两种情况下都使用 NPGSQL。

性能是我的应用程序成功的关键因素,它每秒处理大约 250-300 个请求。

请建议我是否应该选择实体框架。或者是否有任何提示和技巧可以提高 EF 的性能以内联简单的 SQL 调用。我正在使用 .NET Framework 4.5。

0 投票
1 回答
1291 浏览

c# - 带有 npgsql 的实体框架将不接受金钱数据类型

我正在使用 Entity Framework 5 和 PostgreSQL DB 创建一个 .NET C# 应用程序。我使用npgsql 2.0.12 作为数据提供者和数据库优先方法。

首先,我使用edmgen创建模型文件(csdl、ssdl、mdl)和对象层,并将连接字符串作为参数连接到 postgresql db。

edmgen 在工作时会显示警告:

警告 6005:不支持数据类型 'money',表 'tablename' 中的列 'amount' 已排除。

然后一切正常,只是该列不包含在模型中。当然,我对此并不满意,因为我需要这个专栏。我不应该修改数据库结构。

所以,我所做的是我手动修改了模型文件——分别是 CSDL、SSDL、MDL:

我还通过添加此属性来编辑 ObjectLayer,就像此表中的任何其他属性一样。

现在,当我运行应用程序时,我得到:

指定的架构无效。错误:类型 money 没有使用命名空间或别名进行限定。只有原始类型可以在没有限定的情况下使用。

那是谁的错?英孚?npgsql?edmgen?

我在pgfoundry.org/forum上找到了一些东西,但更改为数字对我没有帮助。 npgsql 的用户手册表明money 是受支持的类型。

我怎样才能使这个东西与货币类型的列一起使用?

0 投票
0 回答
492 浏览

entity-framework - EntityFramework 使用 Npgsql 存储过程

这将是一个愚蠢的问题:

如何使用 npgsql 作为数据提供者在 Postgresql 数据库上使用 EntityFramework 调用存储过程。

我试过 ExecuteFunction 但它告诉我

我可以在我的 ssdl 文件中看到该功能:

但在对象层类中没有任何痕迹......

0 投票
1 回答
319 浏览

c# - NpgsqlProvider 和 ExecuteStoreQuery

使用 npgsql 提供程序和 entityframework 我正在尝试编写一个简单的 ExecuteStoreQuery ,如下所示:

但它失败并出现错误“找不到字段”和堆栈跟踪

谁能告诉我我做错了什么?什么是字段索引等等...

我尝试使用别名选择 2+2 作为结果,但仍然是相同的错误

整个框架版本 - 5 npgsql 版本 - 2.0.12.91

0 投票
0 回答
421 浏览

c# - 仅在一台机器上出现 Linq、NpqSql 和实体框架的问题

我们有一个环境,它已经成功地运行了一个在 .net 4.0 上运行实体框架的 postgresql Web 应用程序。

不知何故,仅在我的机器上,单个 Linq 查询失败,而在其他机器上成功。以下是 linq 查询,其上下文并不特别重要。关键是,它适用于其他机器而不是我的机器。此外,我的机器可以成功执行插入等操作,但不能执行这一特定操作。

在同事机器上,在相同服务器配置中运行的新结帐会产生成功的结果。

但是,就我而言,以下是我得到的例外:

System.Exception {System.Data.EntityCommandExecutionException}

InnerException:
{"ERROR: 42601: 在\"LEFT\""或附近出现语法错误} System.Exception {Npgsql.NpgsqlException}

如果我查看出现的调试窗口中的 errorSQL 条目,则会使用“select ....limit 2 left join...”创建一个巨大的 SQL,该 SQL 无效并且发生错误的位置。

问题是,为什么这只发生在我的机器上,而我的编译代码部署到其他机器和/或在同事工作时执行的相同代码?我们最近升级到了 64 位应用程序池,但 DLL 是随它一起部署的,并且从输出来看,它们是正确的。

显然我在我的机器上遗漏了一些东西,但它不在我们的源代码中,所以它要么是 iis 配置,要么是 gac 中导致问题的东西。

编辑:

尽管进行了检查,但当我进行 Visual Studio 的开发人员预览安装时,我已经安装了 4.5。由于 4.5 是 4.0 的就地升级,我错过了它说“目标 4.0”的所有内容,尽管它是 4.5。显然,微软在 4.5 中为实体框架(或制造更多)修复了一堆错误,这就是其中之一。其他人也有类似的问题,所以不确定是 4.0 中的错误还是 4.5 中引入的错误。

以下为任何可能有的人修复了上述问题

0 投票
1 回答
3025 浏览

c# - 首先如何使用 DotConnect For PostgreSQL 和实体框架代码

我正在尝试在我的项目中使用 POstgreSQL 数据库。我想先学习代码开发。我为 PostgreSql(试用版)下载了 dotconnect,并将 Devart.Data.PostgreSql dll 添加到我的参考资料中。然后,我在 app.copnfig 中添加了这些行

当我执行我的应用程序时,我有这个例外:

从数据库获取提供者信息时出错。这可能是由 Entity Framework 使用不正确的连接字符串引起的。检查内部异常以获取详细信息并确保连接字符串正确。

0 投票
0 回答
1102 浏览

entity-framework - 'Database' 是 'System.Data.Entity.Database' 之间的模棱两可的引用

我有数据库优先的 MVC 应用程序。该数据库是带有 dotconnect 数据提供程序的 postgres。该项目运行良好,没有问题。但是,当我在同一服务器中选择另一个数据库时,我在 InitializeSimpleMembershipAttribute.cs 类中出现以下错误。

我可以跟踪的唯一尊重是新数据库是从名为“dbwrench”的程序生成的。谁能解释一下这个错误是什么意思?

0 投票
1 回答
894 浏览

c# - EF DataContext,以编程方式设置架构名称

我目前正在使用 EF DataContext 和这样的类:

有没有办法如何从 web.config 动态分配架构名称?我试过这个

但是这种方法已经过时并且不起作用。我的数据库是 potgresql,我使用 Npgsql 进行连接,EF 版本是 6.0

0 投票
2 回答
57 浏览

c# - EF PostgreeSQL array_append

我想将一个项目附加到 int [] 类型的列。我看到带有 array_append 的 PostgreSQL 文档可以做到这一点。但是我们如何使用 EF Core 做到这一点?(我使用 Npgsql.EntityFrameworkCore.PostgreSQL)