问题标签 [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.
c# - DevExpress XPO 持久对象实现 Save 和 New 方法
在我的 Winform 项目中,我有一个简单的详细信息表单,我们可以在其中添加新的、编辑和保存持久对象,直到这里一切正常。
编辑控件是通过from构造函数中的代码绑定的,第一次创建的时候也是通过form构造函数传递的第一个新对象
现在我想实现一个Save and New方法,但没有成功
我试过了,假设 tbVehicule 是对象类,theVehicule是我的持久对象,而 frmVehicule 是我的详细信息表格
该过程应该类似于其他 ORM,如 EF 或 Hibernate
javascript - Breeze 导航属性不在元数据中创建
我正在尝试与 OData 服务器(基于 XPO)进行交流。在来自服务器导航属性的元数据 xml 中存在,但它们不是为客户端类型的元数据创建的。我做错了什么还是有错误?
服务器元数据 xml:
问题有一个导航属性:
但是当我发出命令时:
将元数据加载到微风后,结果在 navigationProperties 数组中有 0 项。
wcf - DevExpress Xpo、OData 和 WCF
好的,所以我已经在 WCF 上与 XPO 苦苦挣扎了好几天了,我似乎无法取得任何进展。我对 WCF 感觉很陌生,即使我已经在一些项目中使用过它。我使用 WCF 的(我的)正常方式是:创建服务库、托管应用程序或 windows 服务和客户端。在客户端中,我添加了一个服务引用,让 VS 在客户端自动为我创建我的类以使用该服务。到目前为止非常容易,并且(几乎)每次都有效。
之后,我只是不断地向服务器添加更多服务,更新服务引用,等等。
现在我决定更多地使用我的(当前不活动的..)DevExpress订阅并使用XPO,它对于简单的应用程序来说就像魅力一样,但是直到今天我每次尝试在wcf上使用它们都失败了,我完全不知道是什么我做错了;
首先,我使用 DevExpress OData 服务向导创建了一个启用 ORM 的 OData 服务(选择了 odata 5.6),设计了我的实体和那个,这就像魅力一样。然后我为我的所有实体添加了(如评论中提到的)简单功能,启动了服务并尝试使用服务参考浏览器发现服务端点。在 50% 的尝试中,浏览器在响应中给了我一些关于无效 XML 格式的错误,另外 50% 只是我的 ORM 对象集合的接口,但根本没有任何功能。(我什至在那里添加了“public int TestFunc(int arg1, int arg2) { return arg1+arg2; }”,但它也没有出现)
经过几天的删除,从头开始创建,阅读并将东西扔在墙上......我尝试了以下示例,因为它对我来说似乎是最“最新”的:http: //www.devexpress.com/Support /中心/示例/详细信息/E4389
但我什至无法在使用示例运行程序打开它后立即运行此示例(并修复 odata 和空间 5.0/5.6 的引用问题......),它引发关于“SetCategoriesFiltering”资源的异常找不到。但是我没有尝试修复它,我太沮丧了。
所以我的基本问题是:我在这里做错了什么,VS2010(SP1)无法创建/运行这些类型的服务吗?我的方法对 XPO 有误吗?没有教程/演示项目对我有用(除了将整个数据库公开为 WCF 服务,但我认为这不是一个好主意.. 还是现在必须这样做?)
浪费这么多时间而不知道发生了什么(或者更好的是什么没有发生......)真的令人沮丧。我知道我没有发布任何我一直在使用的示例项目或代码,因为即使是来自XPO 的开发者没有“开箱即用”
我希望有人可以在这里帮助我,因为我真的不知道接下来我可以尝试什么。
我的开发机器:带有 SP1 DevExpress“DXperience”套件的 Windows 7 Ultimate Visual Studio Professional 2010(我有许可证的最后一个版本是 13.1.10)当我打开示例项目时,所有引用都很好,所以所有 OData/EDM 程序集似乎以适当的版本提供
- 纳米孔
devexpress - Devexpress XAF 类属性数据源过滤
我声明了一个像这样的类
问题是,此字段显示为下拉列表,但我无法控制此列表,我无法过滤或自定义此列表。它始终以所有程序集中的所有可访问类型打开。DataSourceProperty 和 DataSourceCriteria 属性都不起作用。
我可以用其他持久类来做到这一点,但我不能用“类型”类型的字段来做。
如果有解决方法,请提供帮助。提前致谢。
c# - 将存储库模式与(例如)DevExpress XPO 一起使用是否有意义?
就我一直在研究存储库模式而言,“存储库”应该负责数据持久化和基本查询任务,并且仅用于此任务。所以在一个典型的存储库中,我看到了这样的东西:
但我想知道如果使用像 DevExpress 的 XPO 这样的 ORM 工具,存储库实现将主要由单行方法组成。在 XPO 之外仍然创建这个抽象级别是否有意义?
可以指出模拟和单元测试功能,但例如 XPO 提供了强大的内存中持久性功能,这在 99% 的情况下非常适合单元测试。
我想我也可以提到 EF 或 NHibernate,它们具有相似的功能。
另一个问题:如果 - 比方说 - 我没有以这种方式实现存储库模式,我应该在哪里放置更复杂的查询(例如基于复杂的标准或用户角色),或更复杂的项目保存逻辑(使用日志记录,验证等)?
谢谢你的帮助。
更新
定义一个与类型无关的通用存储库接口如何处理像这样的 CRUD 操作:
然后我可以使用 XPO、EF 或我选择的任何 ORM 轻松实现它,甚至使用 JSON 文本文件。这是一个很好的中间解决方案,还是有味道?我能看到的唯一缺点是我将把上面提到的那些更复杂的操作放在哪里,但可能我可以在需要时从中继承特殊的接口。
c# - 使用带有嵌套对象的 AutoMapper 的项目时是否可以避免 IIF 表达式?
我有以下视图模型(为简单起见)。
我正在使用嵌套视图模型来避免重复自己(我的真实代码要复杂得多),所以我想避免一直需要展平产品。
我使用 DevExpress XPO 作为 ORM,它支持选择嵌套视图模型。但是,我对生成的 Select 表达式有疑问Project().To<OrderVM>()
。
当我(手动)编写以下查询时,一切都像魅力一样。投影后的过滤,排序,分组工作作为加速(例如由gridview使用)。
它的一个副作用是,如果 - 比方说 - 一个订单没有产品,那么视图模型中的产品不会为空,而是所有内容都为空(ID = 0,名称 = null 等)。但这对我来说很好,因为结果显示在网格中,我可以轻松处理这个问题。
所以现在当我使用 时Project.To<OrderVM>()
,AutoMapper 生成的 Select 表达式将如下所示:
这当然是一种语义上更正确的方法,但是,XPO 会在过滤、排序等方面崩溃。所以我需要以某种方式避免这个IIF
表达式并使用纯嵌套初始化程序。有没有可能,或者有什么解决方法吗?不幸的是,我在玩表情树方面没有那么丰富的经验。
c# - 在 Devexpress XPO 上删除旧密钥后如何创建重复密钥?
这是我的产品类:
我使用 Gridview 来控制数据。当我使用productId = "id-5"删除一行时;
然后使用productId = "id-5"添加新行;(相同的id我被删除了)
最后我承诺;
并收到异常:找到重复的密钥!
c# - devExpress XAF 中的关系是如何组织的
即使在阅读了在线文档之后,我也无法理解所有这些 [Association] 内容。我有这个数据库
如何在 devExpress XAF (c#) 中建立一对一的关系?例如,Очередь-ServId 到 Услуги -Id?我要添加什么?
这是我的代码
Сlass 队列是“Очередь”
服务是“Услуги”
谢谢
c# - Take 后的 Enumerable.Count 返回 Take-number 而不是实际数字
我有一个奇怪的情况。我使用 Devexpress XPO 对 MS SQL 进行了以下查询。
当查询有 0 个结果时,Count() 返回 100,但不会执行 foreach 语句,因为枚举器没有产生任何结果。
如何检查查询中有多少行,并且只取 100 条记录(或更少)?
我不明白为什么Count()
要从 take 中返回数字,而没有要枚举的记录。
我希望你能帮助我。谢谢!
sql - 为什么规划器不先执行参与 WHERE 子句的连接?
我正在试验 PostgreSQL (v9.3)。我有一个相当大的数据库,并且经常需要使用 8-10 个连接表(作为大型数据网格的来源)执行查询。我使用 Devexpress XPO 作为 PostgreSQL 之上的 ORM,所以很遗憾我无法控制连接的生成方式。
下面的例子是一个相当简化的例子,实际情况更复杂,但就我的检查而言,主要问题也可以在这方面看到。
考虑(语义上)相同查询的以下变体:
该orders
表包含大约 100 万行,大约 3 万行customers
。orders
由于一对一的关系,订单详细信息包含相同的金额。
更新:似乎该示例过于简化而无法重现该问题,因为我再次检查了,在这种情况下,两个执行平原是相同的。然而,在我的实际查询中有更多连接时,会出现问题:如果我将客户作为第一个连接,则执行速度会快 100 倍。我将添加我的真实查询,但由于匈牙利语以及它是由 XPO 和 Npgsql 生成的事实,使其可读性降低。
第一个查询比第二个查询慢得多(大约 100 倍),当我使用 EXPLAIN ANALYZE 输出计划时,我可以看到连接的顺序反映了它们在查询字符串中的位置。因此,首先将两个“巨型”表连接在一起,然后在过滤的客户表连接后(过滤器仅选择一行)。
第二个查询更快,因为连接从一个客户行开始,然后连接 20-30 个订单详细信息行。
不幸的是,在我的情况下,XPO 生成了第一个版本,所以我在性能方面受到了影响。
为什么 PostgreSQL 查询计划程序没有注意到客户的联接在 WHERE 子句中有条件?IMO 正确的优化是首先采用具有任何类型过滤器的连接,然后采用仅参与选择的连接。
任何形式的帮助或建议表示赞赏。