问题标签 [dotconnect]
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.
c# - 在代码中设置连接字符串
我有一个 .NET MVC 应用程序,它利用实体框架和第 3 方提供程序与 Oracle 数据库进行交互。我需要能够根据谁在使用应用程序在两个连接字符串中进行选择。第 3 方提供者假定它将在实体数据模型所在的项目的 app.config 中找到一个连接字符串,该连接字符串的名称对应于实体容器名称。
问题:如何设置连接字符串以使其存在?如果我在对数据库进行任何调用之前使用此处概述的 EntityConnectionStringBuilder是否等同于在 app.config 中设置连接字符串?IE 实体框架的东西会找到它正在寻找的东西吗?
c# - dotConnect for SQLite 是否支持 Mono?
Devart 的 SQLite dotConnect 提供程序是否支持 Mono?谷歌似乎说有,但他们自己的兼容性页面说没有。
我希望在带有 SQLite 的 Mono 上使用 Code First。
oracle - Dotconnect for Oracle - EF - 全局事务中的本地会话过多
我必须在单个事务中将 2 条记录插入到一个数据库中,并将大约 40 条记录插入到另一个数据库中。我正在使用 TransactionScope 并收到此错误。
我确实读过这篇文章,但这无济于事,因为涉及到 2 个 db,而且它是一个分布式事务。
http://www.devart.com/blogs/dotconnect/index.php/entity-framework-tips-and-tricks-part-3.html
我的代码有点像下面。
即使我在循环之外创建“上下文”(与上面链接中的示例不同),代码仍然会因“本地会话过多”错误而失败。
另外,我注意到每个查询“context.Orders.Where(...)”都被列为新事务。我使用的是实体框架而不是 Linq to Sql。所以上面的代码在 20 次迭代时中断。
除了使它们成为 2 个独立的本地事务并以某种方式手动进行事务处理之外,我现在还有什么选择。
oracle - dotConnect 解决 Oracle 希伯来语问题 - 乱码 - 获取 ¿¿¿¿
我正在尝试通过 Devart dotConnect 使用包含希伯来字符的 Oracle 数据库创建 EF。
在注册表中:
在 web.config 中:
在大师:
我得到的是“¿¿¿¿”而不是真正的价值。我可以修吗?
c# - 使用 devart dotConnect 调用 Oracle 存储过程
我是 Entity Framework 的新手,并试图调用 oracle 存储过程,但没有成功。所以这是我的问题:
如何使用 devart dotConnect 调用 oracle 存储过程?
例如,我有存储过程:
从 C# 我想打电话给:
但它抛出“EntityCommandExecutionException”:
执行命令定义时发生错误。有关详细信息,请参阅内部异常。
这是内部异常:
ORA-06550:第 2 行,第 3 列:\nPLS-00306:调用“GET_PROBLEMS”时参数的数量或类型错误\nORA-06550:第 2 行,第 3 列:\nPL/SQL:语句被忽略
我用了
“类型(字节[])”
作为 ObjectParameter 类型,因为我在 Devart Entity Developer 生成的代码中看到了这一点。
ps 顺便问一下,你会如何在大型项目中推荐 dotConnect?
oracle - CLOB vs. VARCHAR2 还有其他选择吗?
我正在为我的应用程序使用 DevArt 的 dotConnect 和 Entity Developer。我已经使用实体优先功能创建了表。
我注意到许多列类型设置为 CLOB。我只有使用 MySQL 和 Microsoft SQL server 的经验,所以我不确定是否将 CLOB 用于应用程序。我做了一些阅读,发现 CLOB 用于大量数据。
问题是:
是否对大多数字段使用 CLOB,例如用户的性别(应该是 varchar (1) )或全名,是否可行?将 CLOB 字段转换为 VARCHAR2 的步骤需要删除列然后重新创建它,并且在 DevArt 的实体资源管理器中存在错误,因此我希望尽可能避免它。编辑:我刚刚发现,如果您为字符串字段设置最大长度,它将自动成为 VARCHAR2。
Oracle 中是否有 TINYTEXT 的等价物?
oracle - 需要帮助转换 Linq 查询(Silverlight RIA 实体 - Oracle DB)
我对 SQL 没有任何问题,但我发现 Linq 有点令人困惑。C#、.NET4、Silverlight、RIA 服务、Oracle DB (v?)、运行 Devart dotConnect 6.10.121 的 VS2010。
我有一个 RIA 实体
更多字段,如用户等,不适用于本帖。有许多工作组成一个过程。每个工作在此表中都有一个条目,但我想要的视图是按摘要分组的日期。
我将在查询中调用 context.Load,我在其中传递开始和结束日期,在 Oracle 中如下所示:
conttext.Load 将从返回 IQueryable 的方法中调用 linq 查询。linq 语句必须在 Devart dotConnect for Oracle 下为 Oracle 运行。我猜我需要一些自定义类来保存结果,比如 ProcessLogHdrDateSummary。
如果你们能帮我填补缺失的东西????? linq,我将不胜感激:
非常感谢!
sql - 大型 SQL 事务:在 PostgreSQL 上内存不足,但在 SQL Server 上工作
我决定将我的 C# 守护程序应用程序(使用 dotConnect 作为 ADO.NET 提供程序)从 SQL Server 2008 R2 移动到 PostgreSQL 9.0.4 x64(在 Windows Server 2008 R2 上)。因此,我稍微修改了所有查询以匹配 PostgreSQL 语法,并且......陷入了 SQL Server 上相同查询从未发生过的行为(甚至在低速版上也没有)。
假设数据库包含 2 个非常简单的表,彼此之间没有任何关系。它们看起来有点像这样:ID、名称、型号、ScanDate、Notes。我有一个转换过程,它通过 TCP/IP 读取数据、处理它、启动事务并使用 vanilla INSERT 将结果放入上述 2 个表中。表格最初是空的;没有 BLOB 列。糟糕的一天大约有 500.000 个 INSERT,全部包含在单个事务中(顺便说一句,不能拆分为多个事务)。从未进行过 SELECT、UPDATE 或 DELETE。INSERT 的一个例子(ID 是 bigserial - autoincremented 自动):
SQL Server 平静地接受负载,同时保持约 200 MB 的合理工作集。然而,PostgreSQL 每秒事务运行会占用额外的 30 MB (!) 并迅速耗尽系统 RAM。
我已经完成了我的 RTFM 并尝试摆弄 postgresql.conf:将“work_mem”设置为最小 64 kB(这稍微减慢了 RAM 占用),将“shared_buffers”/“temp_buffers”减少到最小(没有区别),-但是无济于事。将事务隔离级别降低到未提交读取并没有帮助。除了 ID BIGSERIAL (PK) 上的索引之外,没有其他索引。SqlCommand.Prepare() 没有区别。没有建立任何并发连接:守护进程独占使用数据库。
似乎 PostgreSQL 无法应对令人麻木的简单 INSERT-fest,而 SQL Server 可以做到这一点。也许这是 PostgreSQL 快照与 SQL Server 锁隔离的区别?对我来说这是一个事实:原版 SQL Server 可以工作,而原版和经过调整的 PostgreSQL 都不能。
在基于 INSERT 的事务运行时,我可以做些什么来使 PostgreSQL 内存消耗保持平稳(显然是 SQL Server 的情况)?
编辑:我创建了一个人工测试用例:
DDL:
C#(需要 Devart.Data.dll 和 Devart.Data.PostgreSql.dll)
这会重新创建内存占用。但是:如果在 FOR 循环之外创建了“cmd”变量并且 .Prepare()d ,则内存不会增加!显然,用相同的 SQL 准备多个 PgSqlCommands 但不同的参数值不会像在 SQL Server 中那样在 PostgreSQL 中产生单个查询计划。
问题依然存在:如果使用 Fowler 的 Active Record dp 插入多个新对象,则准备好的 PgSqlCommand 实例共享并不优雅。
有没有办法/选项来促进查询计划重用具有相同结构但不同参数值的多个查询?
更新
我决定看看最简单的情况——SQL 批处理直接在 DBMS 上运行,没有 ADO.NET(由 Jordani 建议)。令人惊讶的是,PostgreSQL 不会比较传入的 SQL 查询,也不会重用内部编译的计划——即使传入的查询具有相同的参数!例如,以下批次:
PostgreSQL(通过 pgAdmin -> 执行查询)——占用内存
SQL Server(通过 Management Studio -> Execute)——保持内存使用平稳
PostgreSQL 日志文件(感谢 Sayap!)包含:
显然,即使在将整个查询按原样传输到服务器之后,服务器也无法对其进行优化。
ADO.NET 驱动程序替代
正如 Jordani 建议的那样,我尝试了 NpgSql 驱动程序而不是 dotConnect - 结果相同(缺乏)。但是, .Prepare() 方法的 Npgsql 源代码包含以下启发性的行:
日志文件中的新内容:
在这段日志摘录中,效率低下非常明显......
结论(例如它们)
Frank 关于 WAL 的注释是另一个觉醒:SQL Server 对典型的 MS 开发人员隐藏的其他配置。
NHibernate(即使在其最简单的用法中)正确地重用准备好的 SqlCommands...如果从一开始就使用它...
很明显,SQL Server 和 PostgreSQL 之间存在架构差异,并且专门为SQL Server 构建的代码(因此幸福地没有意识到“无法重用相同 sql”的可能性)在 PostgreSQL 上不会有效地工作重构。并且重构 130 多个旧 ActiveRecord 类以在杂乱的多线程中间件中重用准备好的 SqlCommand 对象并不是“只需替换 dbo-with-public”类型的事情。
不幸的是,对于我的加班,Eevar 的回答是正确的 :)
感谢所有参与的人!
c# - 使用 Entity Framework Code First 通过 devart dotconnect 连接到旧版 Oracle 数据库
错误:类型 clob 未使用命名空间或别名进行限定。只有 PrimitiveTypes 可以在没有限定的情况下使用。
我一直在尝试使用 EF 4.1(代码优先)和 MVC 3,针对旧版 Oracle 10g 数据库,使用 devart dotconnect。不能更改旧数据库。我正在尝试将其中的数据读入网页。
(Devart.Data.Oracle 版本:5.70.140.0)
在此过程中,我遇到了一些错误需要克服,但来到了这个:
错误 0040:类型 clob 未使用命名空间或别名进行限定。只有 PrimitiveTypes 可以在没有限定的情况下使用。
这是我的代码:
Web.config 连接信息:
编辑:额外信息,这是我试图从中读取的(许多)第一张表。
MVC 控制器抛出这个
Local = '(model).Local' 引发了“System.Data.MetadataException”类型的异常
nhibernate - dotConnect mobile 和 fluent nhibernate 在紧凑框架 3.5 中
我们正在使用dotConnect mobile连接到 Oracle DB。
我知道 dotConnect 可以在桌面上与 NHibernate 和 Fluent Nhibernate ORM 一起使用,但这种组合也可以与 Compact Framework(3.5 版)一起使用吗?