如何访问Microsoft CRM 2011插件中的1:N关系实体?

时间:2012-10-24 00:09:53

标签: dynamics-crm dynamics-crm-2011

我有一个自定义的Board实体,与自定义Board Seat实体有1:N的关系。我在Board实体上有一个更新后的插件,它试图遍历与正在更新的Board相关的所有Board Seats。虽然董事会有几个与之相关的董事会席位,但我已尝试过前后图像并且两者之间的关系为空。

var board = EntityImage.ToEntity<my_boards>();
foreach (var seat in board.board_to_boardseat_relationship)
{
    // Process each seat
}

我使用强类型实体,board.board_to_boardseat_relationship的类型为System.Collections.Generic.IEnumerable<my_boardseat>。似乎这种关系根本没有在前映像或后映像中填充。当我注册图像时,我选择所有属性。知道如何填充这种关系吗?

1 个答案:

答案 0 :(得分:2)

麦克,

它不会被填充,因为所有属性都只是实体的属性。你必须使用某种检索功能来获得与这个特定电路板相关的所有座位。它们永远不会包含在您的Post-or Pre-Image(或Target)中。下面是一些示例代码:

  

实体PostImage =(实体)m_localcontext.PluginExecutionContext.PostEntityImages [“PostImage”];                           my_board board = PostImage.ToEntity();

 var seatsList = orgContext.CreateQuery<my_boardseat>().Where(c => c.boardId.Id == board.boardId).ToList();

 if (seatsList.Count > 0)
 {
      foreach (my_boardseat seat in seatsList)
      {
        //Your Code Here
      }
 }