问题标签 [codefluent]
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.
mysql - 在具有 MySql 数据库后端的 Windows 窗体应用程序上出现间歇性对象引用未设置错误的原因可能是什么?
我有一个 Windows 窗体应用程序,其中底层数据库是 MySql。版本如下:
MySql 服务器 v5.6
.NET v6.5.4 的 MySql 连接器
Windows 7 64 位
我在下面的堆栈跟踪中以间歇模式收到错误。它每次都发生在应用程序的不同部分。有时需要几天才能发生,有时我一天会得到 3 或 4 次。
在我收集此堆栈跟踪错误的特定事件中,屏幕上仍显示带有错误的对话框,我设法并行打开我的 Windows 窗体应用程序的第二个实例,只是注意到第二个实例正在工作完美无缺。这就是模式(或缺乏模式):每当出现此问题时,只需关闭并重新启动应用程序,甚至并行打开另一个实例,就足以恢复数据库访问。如果发生此故障时我没有退出应用程序,那么应用程序访问 MySql 数据库的所有后续尝试都会失败,无论如何。错误对话框选项“忽略此错误并尝试继续”让我得出结论,似乎 MySql 数据库后端和 Windows 窗体应用程序的特定实例“断开连接”,即使是随后的尝试。
我知道堆栈跟踪信息是一系列事件,最近的事件位于顶部,因此假设故障点位于此事件是否正确?
我试着到处研究这个特定的“MySql NativeDriver.ExecutePacket .. Object reference not set”,我只能得到关于人们在看似不相关的不同执行上下文问题上遇到这个问题的报告,其中许多甚至报告为 MySql 错误提交修复.
无论如何,我将不胜感激对手头问题的任何见解,甚至是关于如何正确调试甚至调整 MySql 的配置属性的建议。我对任何想法持开放态度。
加载程序集的长列表,为简洁起见缩短
mysql - 使用 CodeFluent 实体时,如何解决最新版本 (6.9.8) 上 .NET MySql 连接器的低性能问题?
我有一个与 CodeFluent Entities 和 MySql .NET 连接器有关的性能相关数据库问题。
我在用着:
CodeFluent 实体版本 61214.820
MySql 连接器 6.9.8
与 MySql .NET 连接器版本 6.5.4 相比,.Save() 方法在开发测试机器、相同项目、相同例程、相同 MySql DB 引擎版本上的插入性能从每秒 230 条记录下降到每秒 10 条记录,只需切换连接器版本。
检查 MySql 查询日志,我注意到调用 .Save() 方法时向数据库发出的指令有所不同,例如:
连接器 6.5.4:SELECT * FROM mysql.proc WHERE 1=1 AND db LIKE 'entityname' AND name LIKE 'Entity_Save'
连接器 6.9.8:SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA LIKE 'entityname' AND ROUTINE_NAME LIKE 'Entity_Save'
我无法确定这些差异是否与性能下降有关,我只是提到了它,以便您可以获得更多信息来帮助我的情况。
加载方法也会受到性能下降的影响。
我所描述的只是通过切换 MySql .NET 连接器来复制。CodeFluent 实体没有被触及。相对而言, MySql 连接器6.5.4似乎给了我最好的性能,但它给我带来了间歇性错误的问题,使其难以部署到生产环境,这里发布的错误报告。
我可以在 .NET MySql 连接器 6.9.5 中观察到同样的问题。
能否解决/调查这个低性能问题,以提供一种将最新的 .NET MySql 连接器版本与 CodeFluent 实体一起使用的方法?
codefluent - 在组合关系中将未保存的实体添加到集合中会在使用 persistenceIdentity 时出错
我的模型包含以下实体:
我有以下代码:
将实体添加到集合时出现错误,因为 Id 属性包含值 0。我该如何解决这个问题?我不想在将实体添加到集合之前保存它。
codefluent - 是什么导致 CodeFluent 实体错过已部署的 Windows 窗体应用程序上的 app.config 设置?
我有一些已部署的 Windows 窗体应用程序停止在特定机器上工作。重新安装重新部署所有 .exe 和 .dll 对解决错误没有影响。
在应用程序的第一次数据库访问中,错误如下:
我的 app.config 文件有一个
然后是这样的标签:
我知道这使得 codefluent 寻找 MySql.Data 而不是默认的 System.Data (Sql Server) ...
什么可能导致特定机器上的 winforms 应用程序的这种特定部署被覆盖?
错误堆栈跟踪的关键点是:
OpenConnection 转换为 System.Data,而不是 MySql....
我应该在这台机器的 Windows 7 操作系统上检查哪些可能导致这种奇怪行为的东西,而不是具有相同应用程序的其他 Windows 7 操作系统工作得很好?
codefluent - 如何使用 Sql Server Producer 在 CodeFluent Entities 中的多对多关系表上声明集群键
我有一个 CodeFluent 实体模型,例如:
我可以使用 cfps:hint="CLUSTERED" 成功地装饰两个实体上的 cf:property name="Id "。这让我 Sql Server 生产者正确输出
而不是默认的非集群。
如何使用模型生成的第三张表来实现这一点,以适应多对多关系?
默认情况下,创建表生成的代码片段如下:
但是,如果我用 cfps:hint="CLUSTERED" 装饰这两个属性,如下所示:
cf:property name="Roles" typeName="{0}.RoleCollection" relationPropertyName="Users" cfps:hint="CLUSTERED" /
cf:property name="Users" typeName="{0}.UserCollection" relationPropertyName="Roles" cfps:hint="CLUSTERED" /
我得到了一个使用 PRIMARY KEY CLUSTERED 为 TABLE [dbo].[Role_Users_User_Roles] 中的 PK 生成的片段,但是,此外,我得到了一个不希望的效果,即为添加关系生成了一个不正确的脚本(生成的文件名 ...relations_add.sql ), 如:
连同来自 Sql Server 的错误:
错误 3 SQL80001:'CLUSTERED' 附近的语法不正确。
和 CodeFluent 生产者错误:
CodeFluentRuntimeDatabaseException: CF4116: 在第 2 行执行文件 ...path..._relations_add.sql 语句
我需要生成的三个表中的所有三个 PK 集群,但不需要语法错误的副作用来生成关系。
codefluent - 在业务对象模型中使用 _trackXXX 列
有没有办法将持久性跟踪字段 (_trackLastWriteTime) 视为我的 BOM 中的属性。我在您的网站论坛中看到了类似的问题,但由于您对其进行的更新,答案缺少“代码”部分,因此它们无用。再次感谢!何塞普。
codefluent - 如何删除外键列名称中的下划线?
我的模型包含实体 Order 和 Orderline。Orderline 有一个 Order 类型的属性:
CodeFluent
创建了一个数据库,其中包含一个名为 的表,该表Orderline
的列名为Order_Id
. 如何删除此列名称中的下划线?我试图为persistenceTableIdentifierSeparatorChar
andpersistenceRelationIdentifierSeparatorChar
属性指定一个空字符串,但这没有帮助。
codefluent - 无法删除生成文件上的日期/时间戳
我无法从生成的文件中删除日期/时间戳。
问题是,当我编辑 .cfp 文件时,我会将生产标志设置为“覆盖,删除日期”。但是一旦我保存文件,生产标志就会自动被重写为“默认,RemoveDates”。这发生在生产者和项目级别。
如果我使用项目高级属性通过 GUI 设置标志,则它将制作标志设置为“默认,RemoveDates”。此外,我没有与屏幕截图中相同的标志选项
http://blog.codefluententities.com/2013/04/22/remove-the-current-date-and-time-to-generated-files/
屏幕截图已检查以下内容:
1. 删除差异:删除日期
2. 删除日期
我的选项都不匹配屏幕截图中的选项。唯一看起来相似的是:
- 删除差异 <--- 请注意,屏幕截图中的删除日期在同一行
以下是使用 Codefluent 实体的版本/内部版本 1.0.61214.805 创建的模型
codefluent - RemoveDiffs 生产标志选项不会删除所有出现的运行时版本添加到生成的文件
使用默认的生产标志选项,文件生成日期和运行时版本都显示如下:
请注意,构建版本列出了两次
当我将 defaultProducerProductionFlags 设置为“Default, Overwrite, RemoveDates”时,它仍然显示其中一个内部版本号
sql-server - 使用 SQL Server 生产者在 CodeFluent Entities 中的多对多关系表上声明一个聚集键
我和这个问题有同样的问题(完全一样的需要):How can I declare a Clustered key on a many-to-many relationship table in CodeFluent Entities with Sql Server Producer
我尝试使用方面,但我不确定我应该如何设置配置。
我应该为我cfps:hint="CLUSTERED"
的两个表添加吗?我试过了,但我仍然得到同样的错误
SQL80001:“CLUSTERED”附近的语法不正确。
或者也许我的方面没有正确设置。(这是我第一次使用方面)。
可能是产品本身包含的好东西。
=> 更新 => 我仍然有同样的问题。键没有聚集在关系表上。它不是完全相同的关系。
这是我的模型(摘录):
这是我的方面的设置: