|  | @@ -265,7 +265,7 @@ namespace InABox.Core
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    public class Columns<T> : IColumns, IEnumerable<Column<T>>
 | 
	
		
			
				|  |  | +    public class Columns<T> : IColumns, ICollection<Column<T>>
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |          #region Private Fields
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -279,8 +279,15 @@ namespace InABox.Core
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          public int Count => columns.Count;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        bool ICollection<Column<T>>.IsReadOnly => false;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          #endregion
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        private Columns()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            columns = new List<Column<T>>();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          public Columns(ColumnTypeFlags flags)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              columns = new List<Column<T>>();
 | 
	
	
		
			
				|  | @@ -315,7 +322,7 @@ namespace InABox.Core
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      var isLocal = !prop.HasParentEntityLink()
 | 
	
		
			
				|  |  |                          || (prop.Parent?.HasParentEntityLink() != true && prop.Name.EndsWith(".ID"));
 | 
	
		
			
				|  |  | -                    if (flags.HasFlag(ColumnTypeFlags.Local) && !prop.IsCalculated)
 | 
	
		
			
				|  |  | +                    if (flags.HasFlag(ColumnTypeFlags.Local) && isLocal && !prop.IsCalculated)
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  |                          columns.Add(new Column<T>(prop));
 | 
	
		
			
				|  |  |                      }
 | 
	
	
		
			
				|  | @@ -585,7 +592,7 @@ namespace InABox.Core
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          #endregion
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        #region IEnumerable
 | 
	
		
			
				|  |  | +        #region ICollection
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          public IEnumerator<Column<T>> GetEnumerator()
 | 
	
		
			
				|  |  |          {
 | 
	
	
		
			
				|  | @@ -599,6 +606,31 @@ namespace InABox.Core
 | 
	
		
			
				|  |  |              return columns.GetEnumerator();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        void ICollection<Column<T>>.Add(Column<T> item)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Add(item);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        void ICollection<Column<T>>.Clear()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            columns.Clear();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        bool ICollection<Column<T>>.Contains(Column<T> item)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            return Contains(item.Property);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        void ICollection<Column<T>>.CopyTo(Column<T>[] array, int arrayIndex)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            columns.CopyTo(array, arrayIndex);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        bool ICollection<Column<T>>.Remove(Column<T> item)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            return columns.RemoveAll(x => x.Property == item.Property) > 0;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          #endregion
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |