问题标签 [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# - 如何检查用于 postgreSQL 数据库连接的 dotConnect 是否正确
我有一个连接到 PostgreSQL 数据库服务器的 excel 插件,一切正常。有一个切换数据库的用户界面,但是当有人不小心输入错误的数据库时,会出现很多错误——当然。我想事先检查服务器是否存在且可连接,以及数据库是否存在且可连接。我在互联网上找不到有关如何执行此操作的任何参考...有人可以帮助我吗?
sql - postgres的dotconnect - 未知的参数方向
我对 PgSqlCommandBuilder.DeriveParameters 函数有疑问。有时它会抛出异常“未知参数方向”。没有任何明显的理由。问题很少发生。当我遇到第一个异常时,它总是会抛出所有后续调用,直到。重新启动我的应用程序后,它可以正常工作。我有版本 6.8.322。有,有没有类似的问题?我尝试与它抗争一段时间,但没有成功。
完整的堆栈跟踪
c# - 带有 dotConnection PostgreSQL 的溢出异常
我已经使用 dotConnect for PostgreSQL专业版从数据库创建模型。一切正常,除了实体之一。一些属性生成为十进制。我的示例属性Entity
:
当我尝试获取实体集合时出现错误:
Devart.Data.PostgreSql.dll 中出现了“System.OverflowException”类型的第一次机会异常
附加信息:对于 Decimal,值太大或太小。
我什至不知道哪一行有问题。我正在获取大约 400 行。有什么快速的方法来确定有问题的行吗?表有大约 170 列,大约 20 列是十进制类型。我在 pgAdmin 中获取了行,但没有值看起来太大/太小。我能做些什么?我想我会改成decimal
,double
但首先我需要找到有问题的行。
mysql - System.DateTime 类型不是受支持的类型。更改为使用 System.DateTimeOffset
我们正在创建 WebApi 2.2 服务并使用上面列出的技术。我们的后端数据存储是 MySql 5.6。我们正在使用 dotConnect for MySql 来处理数据存储。在数据库中,有一个类型为 Timestamp 的 RowVersion 列。在 EF 中,我成功生成了模型,但我注意到 RowVersion 设置为 DateTime。当我运行 WebApi 时,出现以下运行时异常,因此我需要将类型更改为 DateTimeOffset,因为 Timestamp 不可用。
在我们的应用程序中,我们将使用带有 ETag 的 RowVersion 进行并发处理。因此,我们只会在应用程序中读取 RowVersion;每当插入或更新发生时,数据库将自动更新 RowVersion。
我不知道如何纠正这个问题......也许,有一些方法可以添加自动类型转换,因此模型中的 RowVersion 是 Int64,我们通过将 Timestamp.value 发送到我们的应用。我们只是在阅读它,所以这似乎是合理的。
当我在 EF 模型中将 RowVersion 更改为 Int64 并构建应用程序时,我收到以下错误:
错误 1 错误 2019:指定的成员映射无效。'Model.customer' 类型中成员 'Version' 的类型 'Edm.Int64[Nullable=True,DefaultValue=]' 与 'Devart.Data.MySql.timestamp[Nullable=True,DefaultValue=,Precision=0' 不兼容'Model.Store.customers' 类型的成员 'Version' 的 ]'。C:\PROJECTS\ServiceMySql\ServiceMySql\Models\Model.edmx 898 17 ServiceMySql
非常感谢您帮助找出解决此问题的方法。
感谢您的时间和建议,
麦克风
本文开头提到的异常:
System.ArgumentException 未被用户代码
HResult=-2147024809 Message=The type 'System.Nullable 1 configurationCallback) at XXXXServiceMySql.WebApiApplication.Application_Start() in c:\PROJECTS\XXXXServiceMySql\XXXXServiceMySql\Global.asax.cs:line 17 InnerException :1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' of property 'Version' in the 'XXXXServiceMySql.Models.customer' type is not a supported type. Change to use 'System.DateTimeOffset' or ignore this type by calling Ignore<XXXXServiceMySql.Models.customer>() on 'System.Web.OData.Builder.ODataModelBuilder'. Parameter name: navigationProperty Source=System.Web.OData
ParamName=navigationProperty StackTrace: at System.Web.OData.Builder.EntityTypeConfiguration.AddNavigationProperty(PropertyInfo navigationProperty, EdmMultiplicity multiplicity, Boolean containsTarget) at System.Web.OData.Builder.EntityTypeConfiguration.AddNavigationProperty(PropertyInfo navigationProperty, EdmMultiplicity multiplicity) at System.Web.OData.Builder.ODataConventionModelBuilder.MapEntityType(EntityTypeConfiguration entity) at System.Web.OData.Builder.ODataConventionModelBuilder.MapType(StructuralTypeConfiguration edmType) at System.Web.OData.Builder.ODataConventionModelBuilder.MapTypes() at System.Web.OData.Builder.ODataConventionModelBuilder.GetEdmModel() at XXXXServiceMySql.WebApiConfig.GenerateEdmModel() in c:\PROJECTS\XXXXServiceMySql\XXXXServiceMySql\App_Start\WebApiConfig.cs:line 89 at XXXXServiceMySql.WebApiConfig.Register(HttpConfiguration config) in c:\PROJECTS\XXXXServiceMySql\XXXXServiceMySql\App_Start\WebApiConfig.cs:line 55 at System.Web.Http.GlobalConfiguration.Configure(Action
c# - dotConnect Oracle:对同一个表的多个引用的相同外键约束名称
我首先在 EF6 代码中有一个相当复杂的数据库模型(大约 100 个实体)。其中一个实体称为“Base”,另一个称为“BaseAssociation”。“BaseAssociation”在“Base”对象之间建立多对多关系。附加到“BaseAssociation”对象的是“BaseAssociationAttribute”对象,它们为关联提供元数据。
“BaseAssociation”包含对“Base”表的两个引用,“AssociatedBy”和“AssociatedWith”。在使用 Devart dotConnect (8.4.215) 在 Oracle 数据库上创建数据库模型时,两个引用的外键约束具有相同的名称。通常,命名由实体类型和属性名称组成。但不知何故,这在我的情况下似乎被打破了。dotConnect 生成以下 sql:
不知何故,两个外键都被赋予了相同的约束名称。
虽然在 sql server 设置上执行,但一切正常。不知何故,我无法使用更简单的模型重现这一点,并且所有其他约束名称都遵循默认模式。我没有触及任何代码优先约定,但启用了“截断长默认名称”、“忽略模式名称”和“列类型大小写约定兼容性”。
我正在使用 EF6.1.1,点连接 8.4.215
有人有想法吗?谢谢
mysql - 将 MySQLGuid(来自 Devart dotConnect for MySQL)转换为 SQL 中的字符串
我正在使用 Devart 的 DotConnect 产品将 .net 应用程序连接到 MySQL 数据库。一切运行良好,但在数据库中使用 SQL 时出现问题。
该应用程序使用 Guids 作为数据库中的行 id(最初来自 SQL Server 应用程序),它们在数据库中存储为 BINARY(16)(并在通过 .net 应用程序访问时使用 DevArt 的 MySQLGuid 类)
问题是,当我想查询数据库中的特定行时,我不能只粘贴数据库中 GUID 的字符串表示形式,所以我正在尝试制定一个函数来转换 GUID 的二进制表示形式到一个字符串。
起初,我认为在查询中调用 HEX(id) 是一件相当简单的事情,然后如果我想要一个友好的可读输出,我需要做的就是在适当的位置添加 -。
select 语句可能如下所示(实际上,我会将其包装为一个函数):
不会返回完全正确的 GUID。例如,如果我存储d1dfd973-fa3d-4b90-a1eb-47217162cd40
然后上面的选择语句返回73d9dfd1-3dfa-904b-a1eb-47217162cd40
看起来前 8 个字节在组中的顺序颠倒了(取字符串 GUID 的第一部分,73d9dfd1
从字节顺序的角度来看(即,将两个字符的组视为一个字节)是d1dfd973
,这是正确的输出。
我的问题是——我可以在 MySQL 的 SQL 方言中执行一项操作,允许我反转相关部分的字节顺序吗?我可以做出更复杂的 LEFT/MID/RIGHT 语句,但这感觉不是一个好方法。
非常感谢您提出建议。
c# - 控制自动生成代码的数据类型分配
我正在使用Devart Oracle Edition Professional 8.4.215.0 的 DotConnect 访问 Oracle 数据库中的表。我遇到了一个问题,即自动生成的代码将 NUMBER(3,0) 数据类型解释为布尔值。我打算它是从 0 到 9 的值。
有没有办法强制自动生成的代码构造将它们分配为整数而不是布尔值?
编辑
我在 Designer.cs 文件中手动更改了它们,它似乎可以顺利工作,但我不想编辑这个文件。
devart - dotConnect Express for Oracle 使用哪个许可证?
我一直在寻找 dotConnect Express for Oracle 8.4.201 使用/需要的许可证。我正在使用他们的 nuget 包:https ://www.nuget.org/packages/dotConnect.Express.for.Oracle/8.4.201
不幸的是,nuget 页面不包含任何许可证信息(与其他包一样,即Json.NET)。
从nuget 文档中,我看到 .nuspec 文件可以包含元数据条目licenseUrl
,根据 nuget 文档,该条目是:
“指向软件包所在许可证的链接。”
但是,包文件中包含的 .nuspec 文件dotConnect.Express.for.Oracle.8.4.201.nupkg
不包含该元素(这很像解释了为什么 nuget 页面也不包含指向许可条款的链接)。
我一直在谷歌上搜索这个但没有任何结果。
所以,是的,任何人都可以向我指出一些有关此 nuget 包/库所在许可证的官方文档吗?
oracle - 如何将 Devarts dotConnect 提供程序添加到实体框架?
我正在尝试遵循这个实体框架的 Devarts 教程:http: //www.devart.com/dotconnect/oracle/articles/tutorial_ef.html
但是当我尝试创建实体数据模型的连接时,我找不到 dotConnect 提供程序。
我已经在 .config 文件中添加了该文本
- 视觉工作室版本:2013
- Devart.Data.Oracle.Entity 版本:8.4.389.0
- 实体框架:6.0
c# - LINQ 中的 Include 方法用于左连接?
我正在使用 Entity Framework 6,DotConnect for Oracle,我有以下两个查询:
第一个,使用简单的连接(LINQ 和输出 SQL):
林克:
输出 SQL:
二、使用包括:
林克:
输出 SQL:
我怀疑我是否总是可以对左连接使用“包含”方法。这种方法对我来说不是很清楚。