本文整理汇总了C#中Mapping.AddManyToManyFilter方法的典型用法代码示例。如果您正苦于以下问题:C# Mapping.AddManyToManyFilter方法的具体用法?C# Mapping.AddManyToManyFilter怎么用?C# Mapping.AddManyToManyFilter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mapping
的用法示例。
在下文中一共展示了Mapping.AddManyToManyFilter方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BindManyToManySubelements
private void BindManyToManySubelements(Mapping.Collection collection, XmlNode manyToManyNode)
{
// Bind the where
XmlAttribute where = manyToManyNode.Attributes["where"];
string whereCondition = where == null ? null : where.Value;
collection.ManyToManyWhere = whereCondition;
// Bind the order-by
XmlAttribute order = manyToManyNode.Attributes["order-by"];
string orderFragment = order == null ? null : order.Value;
collection.ManyToManyOrdering = orderFragment;
// Bind the filters
if ((manyToManyNode.SelectSingleNode(HbmConstants.nsFilter, namespaceManager) != null ||
whereCondition != null) &&
collection.FetchMode == FetchMode.Join &&
collection.Element.FetchMode != FetchMode.Join)
throw new MappingException(
"many-to-many defining filter or where without join fetching " +
"not valid within collection using join fetching [" + collection.Role + "]"
);
foreach (XmlNode filterElement in manyToManyNode.SelectNodes(HbmConstants.nsFilter, namespaceManager))
{
string name = XmlHelper.GetAttributeValue(filterElement, "name");
string condition = filterElement.InnerText.Trim();
if (StringHelper.IsEmpty(condition))
condition = XmlHelper.GetAttributeValue(filterElement, "condition");
if (StringHelper.IsEmpty(condition))
condition = mappings.GetFilterDefinition(name).DefaultFilterCondition;
if (condition == null)
throw new MappingException("no filter condition found for filter: " + name);
log.Debug(
"Applying many-to-many filter [" + name +
"] as [" + condition +
"] to role [" + collection.Role + "]"
);
collection.AddManyToManyFilter(name, condition);
}
}