本文整理汇总了C#中System.Web.Http.OData.Formatter.Serialization.SelectExpandNode.BuildExpansions方法的典型用法代码示例。如果您正苦于以下问题:C# SelectExpandNode.BuildExpansions方法的具体用法?C# SelectExpandNode.BuildExpansions怎么用?C# SelectExpandNode.BuildExpansions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Web.Http.OData.Formatter.Serialization.SelectExpandNode
的用法示例。
在下文中一共展示了SelectExpandNode.BuildExpansions方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildSelectExpandNode
/// <summary>
/// Builds the <see cref="SelectExpandNode"/> describing the set of structural properties and navigation properties and actions to select
/// and navigation properties to expand while writing an entry of type <paramref name="entityType"/> for the given
/// <paramref name="selectExpandClause"/>.
/// </summary>
/// <param name="selectExpandClause">The parsed $select and $expand query options.</param>
/// <param name="entityType">The entity type of the entry that would be written.</param>
/// <param name="model">The <see cref="IEdmModel"/> that contains the given entity type.</param>
/// <returns>The built <see cref="SelectExpandNode"/>.</returns>
public static SelectExpandNode BuildSelectExpandNode(SelectExpandClause selectExpandClause, IEdmEntityTypeReference entityType, IEdmModel model)
{
if (entityType == null)
{
throw Error.ArgumentNull("entityType");
}
if (model == null)
{
throw Error.ArgumentNull("model");
}
SelectExpandNode selectExpandNode = new SelectExpandNode();
if (selectExpandClause != null && selectExpandClause.Expansion != null)
{
selectExpandNode.BuildExpansions(selectExpandClause.Expansion, entityType);
}
selectExpandNode.BuildSelections(selectExpandClause == null ? null : selectExpandClause.Selection, entityType, model);
// remove expanded navigation properties from the selected navigation properties.
IEnumerable<IEdmNavigationProperty> expandedNavigationProperties = selectExpandNode.ExpandedNavigationProperties.Keys;
selectExpandNode.SelectedNavigationProperties.ExceptWith(expandedNavigationProperties);
return selectExpandNode;
}