如何通过代码将表单DataSource的LinkType属性设为Delayed或Passive?
解决Dynamics 365 FO中设置DataSource的LinkType为Delayed/Passive的问题
你这里其实是混淆了两个不同的枚举类型:JoinMode和LinkType。JoinMode确实只包含你提到的那些表连接模式(ExistJoin、InnerJoin等),但Delayed和Passive属于LinkType枚举的取值,所以你需要用正确的枚举来完成设置。
正确的代码写法
直接使用LinkType枚举来设置数据源的linkType属性即可:
// 将数据源设置为Passive模式 myDataSource_ds.linkType(LinkType::Passive); // 将数据源设置为Delayed模式 myDataSource_ds.linkType(LinkType::Delayed);
补充说明
简单区分一下这两个枚举的核心作用:
JoinMode:用于定义当前数据源与主数据源之间的表连接逻辑(比如内连接、左外连接等),主要控制数据筛选的规则。LinkType:用于控制数据源的加载行为:- Passive:该数据源不会随主数据源自动加载,必须通过代码调用
executeQuery()或者用户手动操作才会获取数据。 - Delayed:数据源会延迟加载,默认不获取数据,直到用户展开相关记录(比如表单中的展开按钮)或者代码触发加载操作。
- Passive:该数据源不会随主数据源自动加载,必须通过代码调用
如果是在表单设计器的属性面板里,你也能找到LinkType这个属性,里面就包含Delayed和Passive选项,代码里的设置和界面操作是完全对应的。
内容的提问来源于stack exchange,提问作者ulisses
相关产品推荐
相关产品推荐

