none
有关LinkEntity的问题? RRS feed

  • 问题

  • public LinkEntity(
      string  linkFromEntityName,
      string  linkToEntityName,
      string  linkFromAttributeName,
      string  linkToAttributeName,
      JoinOperator  joinOperator
    );
    上面一段定义是SDK里面对LinkEntity的定义,我也看过SDK里面处理M:M的例子,但是对上面几个属性还是不能太理解,请各位大大帮我解释下
    梅小虎
    2009年4月27日 9:29

答案

  • systemuser 于 role 存在多对对关系, 在系统中这个中间实体就是systemuserroles,在数据库对应的也是一个表.
    类似:
    systemuser table:
    systemuserid,other filed...

    role  table:
    roleid,other filed...


    systemuserroles table:
    roleid,systemuserid

    上面代码实现的功能类似:
    SELECT * FROM role INNER JOIN systemuserroles ON role.roleid = systemuserroles.roleid
    WHERE systemuserroles.systemuserid = "{a guid of a user record}"


    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    • 已标记为答案 梅小虎 2009年4月28日 1:44
    2009年4月27日 16:07
    版主

全部回复

  • ConditionExpression ce = new ConditionExpression();                           
    ce.AttributeName = "systemuserid";                           
    ce.Operator = ConditionOperator.Equal;                           
    ce.Values = new object[] { context.UserId };                           
    FilterExpression filter = new FilterExpression();                                                     
    filter.Conditions.Add(ce);                           
    LinkEntity link = new LinkEntity();                           
    link.LinkCriteria = filter;                           
    link.LinkFromEntityName = EntityName.role.ToString() ;                           
    link.LinkFromAttributeName = "roleid";                           
    link.JoinOperator = JoinOperator.Inner;                           
    link.LinkToAttributeName = "roleid";                           
    link.LinkToEntityName = "systemuserroles";                           
    QueryExpression query = new QueryExpression();                           
    query.EntityName = EntityName.role.ToString();                           
    query.ColumnSet = new AllColumns();                           
    query.LinkEntities.Add(link);                           
    RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();                           
    retrieve.Query = query;                           
    retrieve.ReturnDynamicEntities = true;                           
    RetrieveMultipleResponse retrieved2 = (RetrieveMultipleResponse)service.Execute(retrieve);

    看这个例子吧
    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    2009年4月27日 15:59
    版主
  • systemuser 于 role 存在多对对关系, 在系统中这个中间实体就是systemuserroles,在数据库对应的也是一个表.
    类似:
    systemuser table:
    systemuserid,other filed...

    role  table:
    roleid,other filed...


    systemuserroles table:
    roleid,systemuserid

    上面代码实现的功能类似:
    SELECT * FROM role INNER JOIN systemuserroles ON role.roleid = systemuserroles.roleid
    WHERE systemuserroles.systemuserid = "{a guid of a user record}"


    Batistuta Cai-刀客 | 蔡敏生 | MS CRM MVP | Blog:http://caims.cnblogs.com
    • 已标记为答案 梅小虎 2009年4月28日 1:44
    2009年4月27日 16:07
    版主