问题标签 [xpo]

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 投票
9 回答
14377 浏览

c# - 对 DevExpress XPO ORM 包有任何想法吗?

XPO是我公司首选的对象关系映射器。关于利弊的任何想法?


我只是在寻找有关该产品的一般感觉和轶事。我们不会切换到 XPO。我们只是摆脱了应用程序中的硬编码 sql 字符串,并完全转移到 ORM 以进行所有数据访问。

0 投票
1 回答
2345 浏览

.net - 如何将持久对象数据绑定到 DataLayoutControl(DevExpress 工具)?

我有一个显示 DataLayoutControl 组件的小表单。

如果我使用 GridControl 对象会被保存。如果我使用 DataLayoutControl (单独显示它们),它们在更改后不会被保存。用户界面编辑后,基础对象会更改,但不会保存。

我怎样才能启用它?

PS:我试过 UnitOfWork.CommitChanges (我有一个 uow 遍历整个架构)无济于事。

0 投票
4 回答
8977 浏览

devexpress - DevExpress eXpressApp Framework (XAF) 和 eXpress Persistent Objects (XPO):如何加快关联的加载时间?

我在访问具有大量记录的关联属性时遇到了问题。

我有一个 XAF 应用程序,其父类名为MyParent.

中有 230 条记录MyParent

MyParent有一个名为MyChild.

中有 49,000 条记录MyChild

我在标准方式MyParent之间定义了一个关联:MyChild

MyChild

并在MyParent

有一个特定的MyParent记录叫做MyParent1.

对于MyParent1,有 630MyChild条记录。

我有一个名为MyUI.

用户在 DetailView 的一个下拉列表中选择一个项目MyUI,而我的代码必须用对象填充另一个下拉列表MyChild

用户MyParent1在第一个下拉菜单中进行选择。

我创建了一个属性MyUI来返回MyChild第一个下拉列表中所选值的对象集合。

这是该属性的代码:

DisplayedValues我将该属性标记为,NonPersistent因为它只需要 DetailVIew 的 UI。我不认为第一次持久化它会加快集合的创建,在它用于填充下拉列表之后,我不需要它,所以我不想花时间存储它。

问题是调用需要 45 秒theParentValue = this.DropDownOne

眼镜:

  • 远景商务
  • 8 GB 内存
  • 2.33 GHz E6550 处理器
  • SQL Server 速成版 2005

这对于用户来说等待 DetailView 中的许多下拉菜单之一太长了。

我花时间草拟商业案例,因为我有两个问题:

  1. 如何使关联的值加载更快?

  2. 是否有另一种(简单)方法可以对运行速度更快的下拉菜单和 DetailView 进行编程?

是的,您可以说 630 项太多,无法在下拉列表中显示,但是这段代码需要很长时间,我怀疑速度与 49,000 成正比,而不是与 630 成正比。下拉列表中的 100 项将我的应用程序不会太多。

我的应用程序中需要很多这样的下拉菜单,因此不适合强制用户为每个下拉菜单输入更复杂的过滤条件。用户需要选择一个值并查看相关值。

如果查找大量记录很慢,我会理解,但查找几百条记录不应该花那么长时间。

0 投票
2 回答
3525 浏览

linq-to-sql - 从 XPO 迁移到 LINQ 到 SQL 的提示

我是 DevExpress XPO 库的长期用户。它有很多很棒的功能,但也有一些弱点:

  1. 保存现有对象时,所有属性都在更新查询中发送;更改是基于每个对象而不是每个属性来跟踪的。
  2. 乐观锁定是在每个对象的基础上完成的,而不是每列。
  3. 当发生乐观锁定异常时,不会提供描述冲突性质的上下文;您唯一真正的反应是使操作失败或重现它并在循环中重试。
  4. LINQ 对 XPQuery 的支持非常弱(至少在我们正在使用的 8.1 中)。因此,您经常被迫使用不是类型安全的 XPView 或 XPCollection,它可能返回您不一定需要的列。

在阅读了 LINQ to SQL 如何实现优化锁定和处理更新冲突之后,我被卖了!我喜欢它如何实现列级乐观锁定并且不需要向表中添加列。能够检查和处理冲突的确切性质是很棒的。他们跟踪每列更改的事实应该使其更新查询更加高效。

当然,我还没有在实际应用中使用过LINQ to SQL,所以我不知道它在现实中的比较。此外,我不清楚它是否具有我们喜欢 XPO 的某些功能的类似物,例如:

  1. 自动模式更新(我们相信对象设计驱动数据库结构而不是相反,这大大简化了软件部署)
  2. 如何实现继承的两个选项(同表或一对一的表关系)
  3. 支持内存存储(尽管我认为我们可以在单元测试中将 LINQ 替换为对象)
  4. 存储提供程序自定义(允许我们向 XPO 查询添加 NOLOCK 支持)

我们将进行探索性的部分迁移,我们将暂时将两个 ORM 用于代码的不同部分。你们中的任何人都有使用 XPO 和 LINQ to SQL 的实际经验吗?他们在实践中如何比较?具体来说,您是否知道 LINQ to SQL 缺少的任何会为代码迁移带来挑战的功能?

哦,我什至应该关心 LINQ to Entities 吗?它看起来比我们需要的任何东西都要复杂得多。

0 投票
1 回答
218 浏览

versioning - 如何跨不同版本保留单个 XPO?

我想要一个 XPO,并且在 AX4 和 AX5 上使用相同的代码。我正在寻找一个预编译器指令来检查版本,有点像:

0 投票
2 回答
2123 浏览

command-line - 通过命令行导入和编译axapta 2009 xpo

我正在寻找一种通过命令行将现有xpo-export 导入ax2009 aot 的方法,然后只编译这个导入的xpo。google 告诉我如何通过命令行编译整个 aot,这需要很长时间。那么有没有办法导入 xpo(共享项目)并只编译这些对象?

如果应导入的对象由 ax 版本控制并已签入,有哪些可能性?

希望有一种简单的方法来自动化可选地签出、导入、避免覆盖?-问题、编译和运行;)

提前致谢!

0 投票
1 回答
548 浏览

devexpress - 在线程之间共享 XPObject 对象

我正在评估 XPO,到目前为止还不错,真的很喜欢。

我有一个后台线程监视一个目录,当它发现一个新文件被添加时,它解析文件名,并将这个对象存储到数据存储中,然后以该对象作为 arg 触发一个事件,我通过 ui 线程处理这个事件调用,并且在 UI 线程上我需要更改 XPObject 的状态,我怎样才能确保线程安全?使用 XPObject 的 Oid 触发事件?并且在 UI 线程上尝试从 db 中获取对象并对其进行处理,如果有数百万个对象,这似乎有点愚蠢。

有什么建议吗?

0 投票
3 回答
1091 浏览

.net - .NET ORM 更好地支持多线程?

我知道有关 .net ORM 的问题已经被问了数千次,但我想知道哪种 ORM 在多线程环境中易于使用。欢迎商业或免费。

目前,我正在使用 Devexpress 的 XPO,但我觉得在多线程应用程序中使用起来很尴尬。来自一个线程的对象不能被另一个线程共享,要在另一个线程中使用它,我必须使用密钥从 DB 中找到对象,这真的很烦人。即使您锁定了对象的状态,也无法将 DB 对象的状态持久化到 DB。例如,除了创建对象的线程之外,不能从另一个线程调用 Save() 方法。

顺便说一句,我刚刚开始使用 XPO,也许我用错了。

0 投票
3 回答
2462 浏览

linq - 在 ASP.NET 页面上检索大型动态指定表的最佳策略

寻找一些关于如何优化我们的一个项目的建议。我们有一个 ASP.NET/C# 系统,它从 SQL2008 数据中检索数据并将其呈现在 DevExpress ASPxGridView 上。检索到的数据可以来自多个数据库之一——所有数据库都略有不同,并且会定期添加和删除。向用户呈现实时“公司”列表,并从相应的数据库中检索数据。

目前,正在使用标准 SqlDataSource 和动态创建的 SQL SELECT 语句检索数据。语句中有一些 JOIN 以及可选的 WHERE 约束,它们再次根据数据库和用户的权限级别动态创建。

除了性能之外,所有这些都很棒(老实说!)。当涉及到一些数据库时,有几十万行,并且检索和分页数据非常慢(数据库已经正确索引)。因此,我一直在寻找加快系统速度的方法,似乎可以归结为两种选择:XPO 或 LINQ。

LINQ 似乎是流行的选择,但我不确定使用本质上如此动态的系统来实现它有多容易——我是否需要为 LINQ 可以访问的每个数据库创建“定义”?我也有点不确定是否动态地创建 LINQ 查询,尽管查看一些至少部分似乎可行的示例。

另一方面,XPO 似乎允许我动态创建 XPO 数据源。但是,我找不到太多关于如何加入其他表的信息。

任何人都可以就哪种方法(如果有的话)最好地尝试和改造到这个项目中提供任何建议吗?还是当前使用的动态 SQL 模型与 LINQ 和 XPO 根本不同,最好不要管它?

0 投票
1 回答
583 浏览

timer - 通过计时器创建用于修改 XPO 对象的 Web 服务

我有几个创建新对象的客户端。创建新对象时,我需要启动一个计时器,该计时器将在时间过去时更改某些对象属性(每个对象只能在特定时间对已定义的客户端组可见)。我想为此目的使用网络服务并编写了一个启动计时器的方法。

例如,我需要将计时器设置为 5 分钟。执行时间有什么限制吗?计时器会让我的网络服务保持活力吗?