クエリ式で単純な内部結合を実行しようとしています。このクエリを QE で変換しようとしていますが、常に同じエラーが発生します。私はこのQEをやっています:
Entity Role = new Entity();
Role.LogicalName = "role";
Entity SystemUserRoles = new Entity();
SystemUserRoles.LogicalName = "systemuserroles";
QueryExpression query = new QueryExpression() {
Distinct = false, EntityName = Role.LogicalName, ColumnSet = new ColumnSet("name"),
LinkEntities = {
new LinkEntity {
JoinOperator = JoinOperator.Inner, LinkFromAttributeName = "roleid", LinkFromEntityName = Role.LogicalName, LinkToAttributeName = "roleid", LinkToEntityName = SystemUserRoles.LogicalName,
}
},
Criteria = {
Filters = {
new FilterExpression {
FilterOperator = LogicalOperator.And, Conditions = {
new ConditionExpression("systemuserid", ConditionOperator.Equal, "9b1bf31d-ac29-e211-9826-00155d0a0b0f"),
},
},
}
}
};
ret = _service.RetrieveMultiple(query);
これを取得するには:
SELECT b.Name
FROM Role b
INNER JOIN SystemUserRoles a
ON a.RoleId=b.RoleId
WHERE SystemUserId = '9b1bf31d-ac29-e211-9826-00155d0a0b0f'
しかし、これは、エンティティ Role に field が含まれていないことを示していますSystemUserId
。何か案が?