public LinkEntity AddLink(string linkToEntityName, string linkFromAttributeName,
     string linkToAttributeName)
 {
     LinkEntity linkEntity = new LinkEntity()
     {
         LinkToEntityName = linkToEntityName,
         LinkFromAttributeName = linkFromAttributeName,
         LinkToAttributeName = linkToAttributeName
     };
     this.LinkEntities.Add(linkEntity);
     return linkEntity;
 }
 public LinkEntity AddLink(string linkToEntityName, string linkFromAttributeName,
     string linkToAttributeName, JoinOperator joinOperator)
 {
     LinkEntity linkEntity = new LinkEntity()
     {
         LinkToEntityName = linkToEntityName,
         LinkFromAttributeName = linkFromAttributeName,
         LinkToAttributeName = linkToAttributeName,
         JoinOperator = joinOperator
     };
     this.LinkEntities.Add(linkEntity);
     return linkEntity;
 }
 static internal LinkEntity LoadFromXml(XElement item)
 {
     LinkEntity linkEntity = new LinkEntity()
     {
         Columns = ColumnSet.LoadFromXml(item.Element(Util.ns.a + "Columns")),
         EntityAlias = Util.LoadFromXml<string>(item.Element(Util.ns.a + "EntityAlias")),
         JoinOperator = Util.LoadFromXml<JoinOperator>(item.Element(Util.ns.a + "JoinOperator")),
         LinkCriteria = FilterExpression.LoadFromXml(item.Element(Util.ns.a + "LinkCriteria")),
         LinkFromAttributeName = Util.LoadFromXml<string>(item.Element(Util.ns.a + "LinkFromAttributeName")),
         LinkFromEntityName = Util.LoadFromXml<string>(item.Element(Util.ns.a + "LinkFromEntityName")),
         LinkToAttributeName = Util.LoadFromXml<string>(item.Element(Util.ns.a + "LinkToAttributeName")),
         LinkToEntityName = Util.LoadFromXml<string>(item.Element(Util.ns.a + "LinkToEntityName")),
     };
     foreach (XElement childLinkEntity in item.Element(Util.ns.a + "LinkEntities").Elements(Util.ns.a + "LinkEntity"))
     {
         linkEntity.LinkEntities.Add(LinkEntity.LoadFromXml(childLinkEntity));
     }
     return linkEntity;
 }