共计 1627 个字符,预计需要花费 5 分钟才能阅读完成。
点击获取工具 >>
先决条件
平台:
- Frameworks (XAF & XPO)
- WinForms
产品:
- eXpress Persistent Objects
这些新的只读服务器模式组件是 XPServerCollectionSource/XPInstantFeedbackSource 和 XPView 的混合,可与 DevExpress Grid 控件一起应用。
它们提供以下内容:
- 能以较低的内存使用量解决大型数据源(不会加载整个长久对象实例)。
- 能自定义 SELECT 语句并排除未应用的数据列。
- 能在根查问中包含援用属性数据,以防止 1 + N 问题。
- 能蕴含应用 ServerViewProperty 在服务器端计算的自定义(虚构)属性。
在将这些组件用作网格的数据源之前,请按以下形式配置它们:
- 在代码或组件设计器中设置 ObjectType 和 Properties,ServerViewProperty 反对表达式中的持久性或别名属性。
C#
`xpServerModeView1.ObjectType = typeof(Order);
xpInstantFeedbackView1.ObjectType = typeof(Order);
var viewProperties = new ServerViewProperty[] {
new ServerViewProperty(“Oid”, SortDirection.Ascending, “[Oid]”),
new ServerViewProperty(“OrderDate”, SortDirection.None, “[OrderDate]”),
new ServerViewProperty(“Customer”, SortDirection.None, “[Customer.ContactName]”),
new ServerViewProperty(“ProductName”, SortDirection.None, “[ProductName]”),
new ServerViewProperty(“Price”, SortDirection.None, “[Price]”),
new ServerViewProperty(“Quantity”, SortDirection.None, “[Quantity]”),
new ServerViewProperty(“TotalPrice”, SortDirection.None, “[Quantity] * [Price]”),
new ServerViewProperty(“Tax”, SortDirection.None, “[Quantity] [Price] 0.13″)
};
xpServerModeView1.Properties.AddRange(viewProperties);
xpInstantFeedbackView1.Properties.AddRange(viewProperties);`
- 解决 ResolveSession 事件来提供一个 Session,以从数据存储中检索对象。
C#
`session = new Session(XpoDefault.DataLayer);
xpServerModeView1.ResolveSession += (s, e) => {
e.Session = session;
};
xpInstantFeedbackView1.ResolveSession += (s, e) => {
e.Session = session;
};`
- 对于 XPInstantFeedbackView,能够抉择解决 DismissSession 事件以手动解决在 ResolveSession 事件处理程序中创立的 Session。
C#
`xpInstantFeedbackView1.DismissSession += (s, e) => {
IDisposable session = e.Session as IDisposable;
if (session != null) {
session.Dispose();
}
};`