//------------------------------------------------------------------------------
// This is auto-generated code.
//------------------------------------------------------------------------------
// This code was generated by Entity Developer tool using NHibernate template.
// Code is generated on: 20.06.2012 13:57:42
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//------------------------------------------------------------------------------

using System;
using System.Collections;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Collections.Generic;

namespace IndexManyToMany
{

    /// <summary>
    /// There are no comments for IndexManyToMany.Factory, IndexManyToMany in the schema.
    /// </summary>
    public partial class Factory {

        private int _FactoryID;

        private string _FactoryName;
    
        #region Extensibility Method Definitions
        
        partial void OnCreated();

        public override bool Equals(object obj)
        {
          Factory toCompare = obj as Factory;
          if (toCompare == null)
          {
            return false;
          }

          if (!Object.Equals(this.FactoryID, toCompare.FactoryID))
            return false;
          
          return true;
        }

        public override int GetHashCode()
        {
          int hashCode = 13;
          hashCode = (hashCode * 7) + FactoryID.GetHashCode();
          return hashCode;
        }
        
        #endregion

        public Factory()
        {
            OnCreated();
        }

    
        /// <summary>
        /// There are no comments for FactoryID in the schema.
        /// </summary>
        public virtual int FactoryID
        {
            get
            {
                return this._FactoryID;
            }
            set
            {
                this._FactoryID = value;
            }
        }

    
        /// <summary>
        /// There are no comments for FactoryName in the schema.
        /// </summary>
        public virtual string FactoryName
        {
            get
            {
                return this._FactoryName;
            }
            set
            {
                this._FactoryName = value;
            }
        }
    }

    /// <summary>
    /// There are no comments for IndexManyToMany.Company, IndexManyToMany in the schema.
    /// </summary>
    public partial class Company {

        private int _CompanyID;

        private string _CompanyName;

        private IDictionary<Company,Factory> _Contractors;
    
        #region Extensibility Method Definitions
        
        partial void OnCreated();

        public override bool Equals(object obj)
        {
          Company toCompare = obj as Company;
          if (toCompare == null)
          {
            return false;
          }

          if (!Object.Equals(this.CompanyID, toCompare.CompanyID))
            return false;
          
          return true;
        }

        public override int GetHashCode()
        {
          int hashCode = 13;
          hashCode = (hashCode * 7) + CompanyID.GetHashCode();
          return hashCode;
        }
        
        #endregion

        public Company()
        {
            this._Contractors = new Dictionary<Company,Factory>();
            OnCreated();
        }

    
        /// <summary>
        /// There are no comments for CompanyID in the schema.
        /// </summary>
        public virtual int CompanyID
        {
            get
            {
                return this._CompanyID;
            }
            set
            {
                this._CompanyID = value;
            }
        }

    
        /// <summary>
        /// There are no comments for CompanyName in the schema.
        /// </summary>
        public virtual string CompanyName
        {
            get
            {
                return this._CompanyName;
            }
            set
            {
                this._CompanyName = value;
            }
        }

    
        /// <summary>
        /// There are no comments for Contractors in the schema.
        /// </summary>
        public virtual IDictionary<Company,Factory> Contractors
        {
            get
            {
                return this._Contractors;
            }
            set
            {
                this._Contractors = value;
            }
        }
    }

}
