#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.1433
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;



[System.Data.Linq.Mapping.DatabaseAttribute(Name="Database")]
public partial class DataClassesDataContext : System.Data.Linq.DataContext
{
	
	private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();
	
  #region Extensibility Method Definitions
  partial void OnCreated();
  partial void InsertADENDA(ADENDA instance);
  partial void UpdateADENDA(ADENDA instance);
  partial void DeleteADENDA(ADENDA instance);
  partial void InsertUTILIZADOR(UTILIZADOR instance);
  partial void UpdateUTILIZADOR(UTILIZADOR instance);
  partial void DeleteUTILIZADOR(UTILIZADOR instance);
  partial void InsertCONTACTO(CONTACTO instance);
  partial void UpdateCONTACTO(CONTACTO instance);
  partial void DeleteCONTACTO(CONTACTO instance);
  partial void InsertDOCUMENTO(DOCUMENTO instance);
  partial void UpdateDOCUMENTO(DOCUMENTO instance);
  partial void DeleteDOCUMENTO(DOCUMENTO instance);
  partial void InsertIMAGEM(IMAGEM instance);
  partial void UpdateIMAGEM(IMAGEM instance);
  partial void DeleteIMAGEM(IMAGEM instance);
  partial void InsertPROCESSO(PROCESSO instance);
  partial void UpdatePROCESSO(PROCESSO instance);
  partial void DeletePROCESSO(PROCESSO instance);
  partial void InsertSECCAO(SECCAO instance);
  partial void UpdateSECCAO(SECCAO instance);
  partial void DeleteSECCAO(SECCAO instance);
  #endregion
	
	public DataClassesDataContext() : 
			base(global::System.Configuration.ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString, mappingSource)
	{
		OnCreated();
	}
	
	public DataClassesDataContext(string connection) : 
			base(connection, mappingSource)
	{
		OnCreated();
	}
	
	public DataClassesDataContext(System.Data.IDbConnection connection) : 
			base(connection, mappingSource)
	{
		OnCreated();
	}
	
	public DataClassesDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
			base(connection, mappingSource)
	{
		OnCreated();
	}
	
	public DataClassesDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
			base(connection, mappingSource)
	{
		OnCreated();
	}
	
	public System.Data.Linq.Table<ADENDA> ADENDAs
	{
		get
		{
			return this.GetTable<ADENDA>();
		}
	}
	
	public System.Data.Linq.Table<UTILIZADOR> UTILIZADORs
	{
		get
		{
			return this.GetTable<UTILIZADOR>();
		}
	}
	
	public System.Data.Linq.Table<CONTACTO> CONTACTOs
	{
		get
		{
			return this.GetTable<CONTACTO>();
		}
	}
	
	public System.Data.Linq.Table<DOCUMENTO> DOCUMENTOs
	{
		get
		{
			return this.GetTable<DOCUMENTO>();
		}
	}
	
	public System.Data.Linq.Table<IMAGEM> IMAGEMs
	{
		get
		{
			return this.GetTable<IMAGEM>();
		}
	}
	
	public System.Data.Linq.Table<PROCESSO> PROCESSOs
	{
		get
		{
			return this.GetTable<PROCESSO>();
		}
	}
	
	public System.Data.Linq.Table<SECCAO> SECCAOs
	{
		get
		{
			return this.GetTable<SECCAO>();
		}
	}
}

[Table(Name="dbo.ADENDA")]
public partial class ADENDA : INotifyPropertyChanging, INotifyPropertyChanged
{
	
	private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
	
	private decimal _ID_ADENDA;
	
	private decimal _ID_PROCESSO;
	
	private decimal _ID_UTILIZADOR;
	
	private string _TITULO;
	
	private string _OBSERVACOES;
	
	private System.DateTime _ULTIMA_ACTUALIZACAO;
	
	private EntityRef<UTILIZADOR> _UTILIZADOR;
	
	private EntityRef<PROCESSO> _PROCESSO;
	
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnID_ADENDAChanging(decimal value);
    partial void OnID_ADENDAChanged();
    partial void OnID_PROCESSOChanging(decimal value);
    partial void OnID_PROCESSOChanged();
    partial void OnID_UTILIZADORChanging(decimal value);
    partial void OnID_UTILIZADORChanged();
    partial void OnTITULOChanging(string value);
    partial void OnTITULOChanged();
    partial void OnOBSERVACOESChanging(string value);
    partial void OnOBSERVACOESChanged();
    partial void OnULTIMA_ACTUALIZACAOChanging(System.DateTime value);
    partial void OnULTIMA_ACTUALIZACAOChanged();
    #endregion
	
	public ADENDA()
	{
		this._UTILIZADOR = default(EntityRef<UTILIZADOR>);
		this._PROCESSO = default(EntityRef<PROCESSO>);
		OnCreated();
	}
	
	[Column(Storage="_ID_ADENDA", AutoSync=AutoSync.OnInsert, DbType="Decimal(18,0) NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
	public decimal ID_ADENDA
	{
		get
		{
			return this._ID_ADENDA;
		}
		set
		{
			if ((this._ID_ADENDA != value))
			{
				this.OnID_ADENDAChanging(value);
				this.SendPropertyChanging();
				this._ID_ADENDA = value;
				this.SendPropertyChanged("ID_ADENDA");
				this.OnID_ADENDAChanged();
			}
		}
	}
	
	[Column(Storage="_ID_PROCESSO", DbType="Decimal(18,0) NOT NULL")]
	public decimal ID_PROCESSO
	{
		get
		{
			return this._ID_PROCESSO;
		}
		set
		{
			if ((this._ID_PROCESSO != value))
			{
				if (this._PROCESSO.HasLoadedOrAssignedValue)
				{
					throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
				}
				this.OnID_PROCESSOChanging(value);
				this.SendPropertyChanging();
				this._ID_PROCESSO = value;
				this.SendPropertyChanged("ID_PROCESSO");
				this.OnID_PROCESSOChanged();
			}
		}
	}
	
	[Column(Storage="_ID_UTILIZADOR", DbType="Decimal(18,0) NOT NULL")]
	public decimal ID_UTILIZADOR
	{
		get
		{
			return this._ID_UTILIZADOR;
		}
		set
		{
			if ((this._ID_UTILIZADOR != value))
			{
				if (this._UTILIZADOR.HasLoadedOrAssignedValue)
				{
					throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
				}
				this.OnID_UTILIZADORChanging(value);
				this.SendPropertyChanging();
				this._ID_UTILIZADOR = value;
				this.SendPropertyChanged("ID_UTILIZADOR");
				this.OnID_UTILIZADORChanged();
			}
		}
	}
	
	[Column(Storage="_TITULO", DbType="VarChar(50) NOT NULL", CanBeNull=false)]
	public string TITULO
	{
		get
		{
			return this._TITULO;
		}
		set
		{
			if ((this._TITULO != value))
			{
				this.OnTITULOChanging(value);
				this.SendPropertyChanging();
				this._TITULO = value;
				this.SendPropertyChanged("TITULO");
				this.OnTITULOChanged();
			}
		}
	}
	
	[Column(Storage="_OBSERVACOES", DbType="VarChar(2000) NOT NULL", CanBeNull=false)]
	public string OBSERVACOES
	{
		get
		{
			return this._OBSERVACOES;
		}
		set
		{
			if ((this._OBSERVACOES != value))
			{
				this.OnOBSERVACOESChanging(value);
				this.SendPropertyChanging();
				this._OBSERVACOES = value;
				this.SendPropertyChanged("OBSERVACOES");
				this.OnOBSERVACOESChanged();
			}
		}
	}
	
	[Column(Storage="_ULTIMA_ACTUALIZACAO", DbType="DateTime NOT NULL")]
	public System.DateTime ULTIMA_ACTUALIZACAO
	{
		get
		{
			return this._ULTIMA_ACTUALIZACAO;
		}
		set
		{
			if ((this._ULTIMA_ACTUALIZACAO != value))
			{
				this.OnULTIMA_ACTUALIZACAOChanging(value);
				this.SendPropertyChanging();
				this._ULTIMA_ACTUALIZACAO = value;
				this.SendPropertyChanged("ULTIMA_ACTUALIZACAO");
				this.OnULTIMA_ACTUALIZACAOChanged();
			}
		}
	}
	
	[Association(Name="UTILIZADOR_ADENDA", Storage="_UTILIZADOR", ThisKey="ID_UTILIZADOR", IsForeignKey=true)]
	public UTILIZADOR UTILIZADOR
	{
		get
		{
			return this._UTILIZADOR.Entity;
		}
		set
		{
			UTILIZADOR previousValue = this._UTILIZADOR.Entity;
			if (((previousValue != value) 
						|| (this._UTILIZADOR.HasLoadedOrAssignedValue == false)))
			{
				this.SendPropertyChanging();
				if ((previousValue != null))
				{
					this._UTILIZADOR.Entity = null;
					previousValue.ADENDAs.Remove(this);
				}
				this._UTILIZADOR.Entity = value;
				if ((value != null))
				{
					value.ADENDAs.Add(this);
					this._ID_UTILIZADOR = value.ID_UTILIZADOR;
				}
				else
				{
					this._ID_UTILIZADOR = default(decimal);
				}
				this.SendPropertyChanged("UTILIZADOR");
			}
		}
	}
	
	[Association(Name="PROCESSO_ADENDA", Storage="_PROCESSO", ThisKey="ID_PROCESSO", IsForeignKey=true)]
	public PROCESSO PROCESSO
	{
		get
		{
			return this._PROCESSO.Entity;
		}
		set
		{
			PROCESSO previousValue = this._PROCESSO.Entity;
			if (((previousValue != value) 
						|| (this._PROCESSO.HasLoadedOrAssignedValue == false)))
			{
				this.SendPropertyChanging();
				if ((previousValue != null))
				{
					this._PROCESSO.Entity = null;
					previousValue.ADENDAs.Remove(this);
				}
				this._PROCESSO.Entity = value;
				if ((value != null))
				{
					value.ADENDAs.Add(this);
					this._ID_PROCESSO = value.ID_PROCESSO;
				}
				else
				{
					this._ID_PROCESSO = default(decimal);
				}
				this.SendPropertyChanged("PROCESSO");
			}
		}
	}
	
	public event PropertyChangingEventHandler PropertyChanging;
	
	public event PropertyChangedEventHandler PropertyChanged;
	
	protected virtual void SendPropertyChanging()
	{
		if ((this.PropertyChanging != null))
		{
			this.PropertyChanging(this, emptyChangingEventArgs);
		}
	}
	
	protected virtual void SendPropertyChanged(String propertyName)
	{
		if ((this.PropertyChanged != null))
		{
			this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
		}
	}
}

[Table(Name="dbo.UTILIZADOR")]
public partial class UTILIZADOR : INotifyPropertyChanging, INotifyPropertyChanged
{
	
	private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
	
	private decimal _ID_UTILIZADOR;
	
	private string _NOME;
	
	private string _PASSWORD;
	
	private string _CARGO;
	
	private string _NUMERO_TELEFONE;
	
	private string _NUMERO_TELEMOVEL;
	
	private string _EMAIL;
	
	private System.Nullable<bool> _IS_ADMIN;
	
	private EntitySet<ADENDA> _ADENDAs;
	
	private EntitySet<DOCUMENTO> _DOCUMENTOs;
	
	private EntitySet<IMAGEM> _IMAGEMs;
	
	private EntitySet<PROCESSO> _PROCESSOs;
	
	private EntitySet<SECCAO> _SECCAOs;
	
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnID_UTILIZADORChanging(decimal value);
    partial void OnID_UTILIZADORChanged();
    partial void OnNOMEChanging(string value);
    partial void OnNOMEChanged();
    partial void OnPASSWORDChanging(string value);
    partial void OnPASSWORDChanged();
    partial void OnCARGOChanging(string value);
    partial void OnCARGOChanged();
    partial void OnNUMERO_TELEFONEChanging(string value);
    partial void OnNUMERO_TELEFONEChanged();
    partial void OnNUMERO_TELEMOVELChanging(string value);
    partial void OnNUMERO_TELEMOVELChanged();
    partial void OnEMAILChanging(string value);
    partial void OnEMAILChanged();
    partial void OnIS_ADMINChanging(System.Nullable<bool> value);
    partial void OnIS_ADMINChanged();
    #endregion
	
	public UTILIZADOR()
	{
		this._ADENDAs = new EntitySet<ADENDA>(new Action<ADENDA>(this.attach_ADENDAs), new Action<ADENDA>(this.detach_ADENDAs));
		this._DOCUMENTOs = new EntitySet<DOCUMENTO>(new Action<DOCUMENTO>(this.attach_DOCUMENTOs), new Action<DOCUMENTO>(this.detach_DOCUMENTOs));
		this._IMAGEMs = new EntitySet<IMAGEM>(new Action<IMAGEM>(this.attach_IMAGEMs), new Action<IMAGEM>(this.detach_IMAGEMs));
		this._PROCESSOs = new EntitySet<PROCESSO>(new Action<PROCESSO>(this.attach_PROCESSOs), new Action<PROCESSO>(this.detach_PROCESSOs));
		this._SECCAOs = new EntitySet<SECCAO>(new Action<SECCAO>(this.attach_SECCAOs), new Action<SECCAO>(this.detach_SECCAOs));
		OnCreated();
	}
	
	[Column(Storage="_ID_UTILIZADOR", AutoSync=AutoSync.OnInsert, DbType="Decimal(18,0) NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
	public decimal ID_UTILIZADOR
	{
		get
		{
			return this._ID_UTILIZADOR;
		}
		set
		{
			if ((this._ID_UTILIZADOR != value))
			{
				this.OnID_UTILIZADORChanging(value);
				this.SendPropertyChanging();
				this._ID_UTILIZADOR = value;
				this.SendPropertyChanged("ID_UTILIZADOR");
				this.OnID_UTILIZADORChanged();
			}
		}
	}
	
	[Column(Storage="_NOME", DbType="VarChar(50) NOT NULL", CanBeNull=false)]
	public string NOME
	{
		get
		{
			return this._NOME;
		}
		set
		{
			if ((this._NOME != value))
			{
				this.OnNOMEChanging(value);
				this.SendPropertyChanging();
				this._NOME = value;
				this.SendPropertyChanged("NOME");
				this.OnNOMEChanged();
			}
		}
	}
	
	[Column(Storage="_PASSWORD", DbType="VarChar(50) NOT NULL", CanBeNull=false)]
	public string PASSWORD
	{
		get
		{
			return this._PASSWORD;
		}
		set
		{
			if ((this._PASSWORD != value))
			{
				this.OnPASSWORDChanging(value);
				this.SendPropertyChanging();
				this._PASSWORD = value;
				this.SendPropertyChanged("PASSWORD");
				this.OnPASSWORDChanged();
			}
		}
	}
	
	[Column(Storage="_CARGO", DbType="VarChar(20)")]
	public string CARGO
	{
		get
		{
			return this._CARGO;
		}
		set
		{
			if ((this._CARGO != value))
			{
				this.OnCARGOChanging(value);
				this.SendPropertyChanging();
				this._CARGO = value;
				this.SendPropertyChanged("CARGO");
				this.OnCARGOChanged();
			}
		}
	}
	
	[Column(Storage="_NUMERO_TELEFONE", DbType="VarChar(15)")]
	public string NUMERO_TELEFONE
	{
		get
		{
			return this._NUMERO_TELEFONE;
		}
		set
		{
			if ((this._NUMERO_TELEFONE != value))
			{
				this.OnNUMERO_TELEFONEChanging(value);
				this.SendPropertyChanging();
				this._NUMERO_TELEFONE = value;
				this.SendPropertyChanged("NUMERO_TELEFONE");
				this.OnNUMERO_TELEFONEChanged();
			}
		}
	}
	
	[Column(Storage="_NUMERO_TELEMOVEL", DbType="VarChar(15)")]
	public string NUMERO_TELEMOVEL
	{
		get
		{
			return this._NUMERO_TELEMOVEL;
		}
		set
		{
			if ((this._NUMERO_TELEMOVEL != value))
			{
				this.OnNUMERO_TELEMOVELChanging(value);
				this.SendPropertyChanging();
				this._NUMERO_TELEMOVEL = value;
				this.SendPropertyChanged("NUMERO_TELEMOVEL");
				this.OnNUMERO_TELEMOVELChanged();
			}
		}
	}
	
	[Column(Storage="_EMAIL", DbType="VarChar(40)")]
	public string EMAIL
	{
		get
		{
			return this._EMAIL;
		}
		set
		{
			if ((this._EMAIL != value))
			{
				this.OnEMAILChanging(value);
				this.SendPropertyChanging();
				this._EMAIL = value;
				this.SendPropertyChanged("EMAIL");
				this.OnEMAILChanged();
			}
		}
	}
	
	[Column(Storage="_IS_ADMIN", DbType="Bit")]
	public System.Nullable<bool> IS_ADMIN
	{
		get
		{
			return this._IS_ADMIN;
		}
		set
		{
			if ((this._IS_ADMIN != value))
			{
				this.OnIS_ADMINChanging(value);
				this.SendPropertyChanging();
				this._IS_ADMIN = value;
				this.SendPropertyChanged("IS_ADMIN");
				this.OnIS_ADMINChanged();
			}
		}
	}
	
	[Association(Name="UTILIZADOR_ADENDA", Storage="_ADENDAs", OtherKey="ID_UTILIZADOR")]
	public EntitySet<ADENDA> ADENDAs
	{
		get
		{
			return this._ADENDAs;
		}
		set
		{
			this._ADENDAs.Assign(value);
		}
	}
	
	[Association(Name="UTILIZADOR_DOCUMENTO", Storage="_DOCUMENTOs", OtherKey="ID_UTILIZADOR")]
	public EntitySet<DOCUMENTO> DOCUMENTOs
	{
		get
		{
			return this._DOCUMENTOs;
		}
		set
		{
			this._DOCUMENTOs.Assign(value);
		}
	}
	
	[Association(Name="UTILIZADOR_IMAGEM", Storage="_IMAGEMs", OtherKey="ID_UTILIZADOR")]
	public EntitySet<IMAGEM> IMAGEMs
	{
		get
		{
			return this._IMAGEMs;
		}
		set
		{
			this._IMAGEMs.Assign(value);
		}
	}
	
	[Association(Name="UTILIZADOR_PROCESSO", Storage="_PROCESSOs", OtherKey="ID_UTILIZADOR")]
	public EntitySet<PROCESSO> PROCESSOs
	{
		get
		{
			return this._PROCESSOs;
		}
		set
		{
			this._PROCESSOs.Assign(value);
		}
	}
	
	[Association(Name="UTILIZADOR_SECCAO", Storage="_SECCAOs", OtherKey="ID_UTILIZADOR")]
	public EntitySet<SECCAO> SECCAOs
	{
		get
		{
			return this._SECCAOs;
		}
		set
		{
			this._SECCAOs.Assign(value);
		}
	}
	
	public event PropertyChangingEventHandler PropertyChanging;
	
	public event PropertyChangedEventHandler PropertyChanged;
	
	protected virtual void SendPropertyChanging()
	{
		if ((this.PropertyChanging != null))
		{
			this.PropertyChanging(this, emptyChangingEventArgs);
		}
	}
	
	protected virtual void SendPropertyChanged(String propertyName)
	{
		if ((this.PropertyChanged != null))
		{
			this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
		}
	}
	
	private void attach_ADENDAs(ADENDA entity)
	{
		this.SendPropertyChanging();
		entity.UTILIZADOR = this;
	}
	
	private void detach_ADENDAs(ADENDA entity)
	{
		this.SendPropertyChanging();
		entity.UTILIZADOR = null;
	}
	
	private void attach_DOCUMENTOs(DOCUMENTO entity)
	{
		this.SendPropertyChanging();
		entity.UTILIZADOR = this;
	}
	
	private void detach_DOCUMENTOs(DOCUMENTO entity)
	{
		this.SendPropertyChanging();
		entity.UTILIZADOR = null;
	}
	
	private void attach_IMAGEMs(IMAGEM entity)
	{
		this.SendPropertyChanging();
		entity.UTILIZADOR = this;
	}
	
	private void detach_IMAGEMs(IMAGEM entity)
	{
		this.SendPropertyChanging();
		entity.UTILIZADOR = null;
	}
	
	private void attach_PROCESSOs(PROCESSO entity)
	{
		this.SendPropertyChanging();
		entity.UTILIZADOR = this;
	}
	
	private void detach_PROCESSOs(PROCESSO entity)
	{
		this.SendPropertyChanging();
		entity.UTILIZADOR = null;
	}
	
	private void attach_SECCAOs(SECCAO entity)
	{
		this.SendPropertyChanging();
		entity.UTILIZADOR = this;
	}
	
	private void detach_SECCAOs(SECCAO entity)
	{
		this.SendPropertyChanging();
		entity.UTILIZADOR = null;
	}
}

[Table(Name="dbo.CONTACTO")]
public partial class CONTACTO : INotifyPropertyChanging, INotifyPropertyChanged
{
	
	private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
	
	private decimal _ID_CONTACTO;
	
	private string _NOME;
	
	private string _TIPO;
	
	private string _MORADA;
	
	private string _NUMERO_TELEFONE_PRI;
	
	private string _NUMERO_TELEFONE_SEC;
	
	private string _NUMERO_FAX;
	
	private string _EMAIL;
	
	private string _OBSERVACOES;
	
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnID_CONTACTOChanging(decimal value);
    partial void OnID_CONTACTOChanged();
    partial void OnNOMEChanging(string value);
    partial void OnNOMEChanged();
    partial void OnTIPOChanging(string value);
    partial void OnTIPOChanged();
    partial void OnMORADAChanging(string value);
    partial void OnMORADAChanged();
    partial void OnNUMERO_TELEFONE_PRIChanging(string value);
    partial void OnNUMERO_TELEFONE_PRIChanged();
    partial void OnNUMERO_TELEFONE_SECChanging(string value);
    partial void OnNUMERO_TELEFONE_SECChanged();
    partial void OnNUMERO_FAXChanging(string value);
    partial void OnNUMERO_FAXChanged();
    partial void OnEMAILChanging(string value);
    partial void OnEMAILChanged();
    partial void OnOBSERVACOESChanging(string value);
    partial void OnOBSERVACOESChanged();
    #endregion
	
	public CONTACTO()
	{
		OnCreated();
	}
	
	[Column(Storage="_ID_CONTACTO", AutoSync=AutoSync.OnInsert, DbType="Decimal(18,0) NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
	public decimal ID_CONTACTO
	{
		get
		{
			return this._ID_CONTACTO;
		}
		set
		{
			if ((this._ID_CONTACTO != value))
			{
				this.OnID_CONTACTOChanging(value);
				this.SendPropertyChanging();
				this._ID_CONTACTO = value;
				this.SendPropertyChanged("ID_CONTACTO");
				this.OnID_CONTACTOChanged();
			}
		}
	}
	
	[Column(Storage="_NOME", DbType="VarChar(50) NOT NULL", CanBeNull=false)]
	public string NOME
	{
		get
		{
			return this._NOME;
		}
		set
		{
			if ((this._NOME != value))
			{
				this.OnNOMEChanging(value);
				this.SendPropertyChanging();
				this._NOME = value;
				this.SendPropertyChanged("NOME");
				this.OnNOMEChanged();
			}
		}
	}
	
	[Column(Storage="_TIPO", DbType="VarChar(50)")]
	public string TIPO
	{
		get
		{
			return this._TIPO;
		}
		set
		{
			if ((this._TIPO != value))
			{
				this.OnTIPOChanging(value);
				this.SendPropertyChanging();
				this._TIPO = value;
				this.SendPropertyChanged("TIPO");
				this.OnTIPOChanged();
			}
		}
	}
	
	[Column(Storage="_MORADA", DbType="VarChar(80)")]
	public string MORADA
	{
		get
		{
			return this._MORADA;
		}
		set
		{
			if ((this._MORADA != value))
			{
				this.OnMORADAChanging(value);
				this.SendPropertyChanging();
				this._MORADA = value;
				this.SendPropertyChanged("MORADA");
				this.OnMORADAChanged();
			}
		}
	}
	
	[Column(Storage="_NUMERO_TELEFONE_PRI", DbType="VarChar(15)")]
	public string NUMERO_TELEFONE_PRI
	{
		get
		{
			return this._NUMERO_TELEFONE_PRI;
		}
		set
		{
			if ((this._NUMERO_TELEFONE_PRI != value))
			{
				this.OnNUMERO_TELEFONE_PRIChanging(value);
				this.SendPropertyChanging();
				this._NUMERO_TELEFONE_PRI = value;
				this.SendPropertyChanged("NUMERO_TELEFONE_PRI");
				this.OnNUMERO_TELEFONE_PRIChanged();
			}
		}
	}
	
	[Column(Storage="_NUMERO_TELEFONE_SEC", DbType="VarChar(15)")]
	public string NUMERO_TELEFONE_SEC
	{
		get
		{
			return this._NUMERO_TELEFONE_SEC;
		}
		set
		{
			if ((this._NUMERO_TELEFONE_SEC != value))
			{
				this.OnNUMERO_TELEFONE_SECChanging(value);
				this.SendPropertyChanging();
				this._NUMERO_TELEFONE_SEC = value;
				this.SendPropertyChanged("NUMERO_TELEFONE_SEC");
				this.OnNUMERO_TELEFONE_SECChanged();
			}
		}
	}
	
	[Column(Storage="_NUMERO_FAX", DbType="VarChar(15)")]
	public string NUMERO_FAX
	{
		get
		{
			return this._NUMERO_FAX;
		}
		set
		{
			if ((this._NUMERO_FAX != value))
			{
				this.OnNUMERO_FAXChanging(value);
				this.SendPropertyChanging();
				this._NUMERO_FAX = value;
				this.SendPropertyChanged("NUMERO_FAX");
				this.OnNUMERO_FAXChanged();
			}
		}
	}
	
	[Column(Storage="_EMAIL", DbType="VarChar(40)")]
	public string EMAIL
	{
		get
		{
			return this._EMAIL;
		}
		set
		{
			if ((this._EMAIL != value))
			{
				this.OnEMAILChanging(value);
				this.SendPropertyChanging();
				this._EMAIL = value;
				this.SendPropertyChanged("EMAIL");
				this.OnEMAILChanged();
			}
		}
	}
	
	[Column(Storage="_OBSERVACOES", DbType="VarChar(500)")]
	public string OBSERVACOES
	{
		get
		{
			return this._OBSERVACOES;
		}
		set
		{
			if ((this._OBSERVACOES != value))
			{
				this.OnOBSERVACOESChanging(value);
				this.SendPropertyChanging();
				this._OBSERVACOES = value;
				this.SendPropertyChanged("OBSERVACOES");
				this.OnOBSERVACOESChanged();
			}
		}
	}
	
	public event PropertyChangingEventHandler PropertyChanging;
	
	public event PropertyChangedEventHandler PropertyChanged;
	
	protected virtual void SendPropertyChanging()
	{
		if ((this.PropertyChanging != null))
		{
			this.PropertyChanging(this, emptyChangingEventArgs);
		}
	}
	
	protected virtual void SendPropertyChanged(String propertyName)
	{
		if ((this.PropertyChanged != null))
		{
			this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
		}
	}
}

[Table(Name="dbo.DOCUMENTO")]
public partial class DOCUMENTO : INotifyPropertyChanging, INotifyPropertyChanged
{
	
	private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
	
	private decimal _ID_DOCUMENTO;
	
	private decimal _ID_UTILIZADOR;
	
	private string _TITULO;
	
	private string _NOME_FICHEIRO;
	
	private string _DATA_ENTRADA;
	
	private string _DESCRICAO;
	
	private EntityRef<UTILIZADOR> _UTILIZADOR;
	
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnID_DOCUMENTOChanging(decimal value);
    partial void OnID_DOCUMENTOChanged();
    partial void OnID_UTILIZADORChanging(decimal value);
    partial void OnID_UTILIZADORChanged();
    partial void OnTITULOChanging(string value);
    partial void OnTITULOChanged();
    partial void OnNOME_FICHEIROChanging(string value);
    partial void OnNOME_FICHEIROChanged();
    partial void OnDATA_ENTRADAChanging(string value);
    partial void OnDATA_ENTRADAChanged();
    partial void OnDESCRICAOChanging(string value);
    partial void OnDESCRICAOChanged();
    #endregion
	
	public DOCUMENTO()
	{
		this._UTILIZADOR = default(EntityRef<UTILIZADOR>);
		OnCreated();
	}
	
	[Column(Storage="_ID_DOCUMENTO", AutoSync=AutoSync.OnInsert, DbType="Decimal(18,0) NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
	public decimal ID_DOCUMENTO
	{
		get
		{
			return this._ID_DOCUMENTO;
		}
		set
		{
			if ((this._ID_DOCUMENTO != value))
			{
				this.OnID_DOCUMENTOChanging(value);
				this.SendPropertyChanging();
				this._ID_DOCUMENTO = value;
				this.SendPropertyChanged("ID_DOCUMENTO");
				this.OnID_DOCUMENTOChanged();
			}
		}
	}
	
	[Column(Storage="_ID_UTILIZADOR", DbType="Decimal(18,0) NOT NULL")]
	public decimal ID_UTILIZADOR
	{
		get
		{
			return this._ID_UTILIZADOR;
		}
		set
		{
			if ((this._ID_UTILIZADOR != value))
			{
				if (this._UTILIZADOR.HasLoadedOrAssignedValue)
				{
					throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
				}
				this.OnID_UTILIZADORChanging(value);
				this.SendPropertyChanging();
				this._ID_UTILIZADOR = value;
				this.SendPropertyChanged("ID_UTILIZADOR");
				this.OnID_UTILIZADORChanged();
			}
		}
	}
	
	[Column(Storage="_TITULO", DbType="VarChar(40) NOT NULL", CanBeNull=false)]
	public string TITULO
	{
		get
		{
			return this._TITULO;
		}
		set
		{
			if ((this._TITULO != value))
			{
				this.OnTITULOChanging(value);
				this.SendPropertyChanging();
				this._TITULO = value;
				this.SendPropertyChanged("TITULO");
				this.OnTITULOChanged();
			}
		}
	}
	
	[Column(Storage="_NOME_FICHEIRO", DbType="VarChar(40) NOT NULL", CanBeNull=false)]
	public string NOME_FICHEIRO
	{
		get
		{
			return this._NOME_FICHEIRO;
		}
		set
		{
			if ((this._NOME_FICHEIRO != value))
			{
				this.OnNOME_FICHEIROChanging(value);
				this.SendPropertyChanging();
				this._NOME_FICHEIRO = value;
				this.SendPropertyChanged("NOME_FICHEIRO");
				this.OnNOME_FICHEIROChanged();
			}
		}
	}
	
	[Column(Storage="_DATA_ENTRADA", DbType="VarChar(10) NOT NULL", CanBeNull=false)]
	public string DATA_ENTRADA
	{
		get
		{
			return this._DATA_ENTRADA;
		}
		set
		{
			if ((this._DATA_ENTRADA != value))
			{
				this.OnDATA_ENTRADAChanging(value);
				this.SendPropertyChanging();
				this._DATA_ENTRADA = value;
				this.SendPropertyChanged("DATA_ENTRADA");
				this.OnDATA_ENTRADAChanged();
			}
		}
	}
	
	[Column(Storage="_DESCRICAO", DbType="VarChar(500)")]
	public string DESCRICAO
	{
		get
		{
			return this._DESCRICAO;
		}
		set
		{
			if ((this._DESCRICAO != value))
			{
				this.OnDESCRICAOChanging(value);
				this.SendPropertyChanging();
				this._DESCRICAO = value;
				this.SendPropertyChanged("DESCRICAO");
				this.OnDESCRICAOChanged();
			}
		}
	}
	
	[Association(Name="UTILIZADOR_DOCUMENTO", Storage="_UTILIZADOR", ThisKey="ID_UTILIZADOR", IsForeignKey=true)]
	public UTILIZADOR UTILIZADOR
	{
		get
		{
			return this._UTILIZADOR.Entity;
		}
		set
		{
			UTILIZADOR previousValue = this._UTILIZADOR.Entity;
			if (((previousValue != value) 
						|| (this._UTILIZADOR.HasLoadedOrAssignedValue == false)))
			{
				this.SendPropertyChanging();
				if ((previousValue != null))
				{
					this._UTILIZADOR.Entity = null;
					previousValue.DOCUMENTOs.Remove(this);
				}
				this._UTILIZADOR.Entity = value;
				if ((value != null))
				{
					value.DOCUMENTOs.Add(this);
					this._ID_UTILIZADOR = value.ID_UTILIZADOR;
				}
				else
				{
					this._ID_UTILIZADOR = default(decimal);
				}
				this.SendPropertyChanged("UTILIZADOR");
			}
		}
	}
	
	public event PropertyChangingEventHandler PropertyChanging;
	
	public event PropertyChangedEventHandler PropertyChanged;
	
	protected virtual void SendPropertyChanging()
	{
		if ((this.PropertyChanging != null))
		{
			this.PropertyChanging(this, emptyChangingEventArgs);
		}
	}
	
	protected virtual void SendPropertyChanged(String propertyName)
	{
		if ((this.PropertyChanged != null))
		{
			this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
		}
	}
}

[Table(Name="dbo.IMAGEM")]
public partial class IMAGEM : INotifyPropertyChanging, INotifyPropertyChanged
{
	
	private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
	
	private decimal _ID_IMAGEM;
	
	private decimal _ID_PROCESSO;
	
	private decimal _ID_UTILIZADOR;
	
	private string _NOME_FICHEIRO;
	
	private string _LEGENDA;
	
	private decimal _ORDEM;
	
	private System.DateTime _ULTIMA_ACTUALIZACAO;
	
	private EntityRef<UTILIZADOR> _UTILIZADOR;
	
	private EntityRef<PROCESSO> _PROCESSO;
	
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnID_IMAGEMChanging(decimal value);
    partial void OnID_IMAGEMChanged();
    partial void OnID_PROCESSOChanging(decimal value);
    partial void OnID_PROCESSOChanged();
    partial void OnID_UTILIZADORChanging(decimal value);
    partial void OnID_UTILIZADORChanged();
    partial void OnNOME_FICHEIROChanging(string value);
    partial void OnNOME_FICHEIROChanged();
    partial void OnLEGENDAChanging(string value);
    partial void OnLEGENDAChanged();
    partial void OnORDEMChanging(decimal value);
    partial void OnORDEMChanged();
    partial void OnULTIMA_ACTUALIZACAOChanging(System.DateTime value);
    partial void OnULTIMA_ACTUALIZACAOChanged();
    #endregion
	
	public IMAGEM()
	{
		this._UTILIZADOR = default(EntityRef<UTILIZADOR>);
		this._PROCESSO = default(EntityRef<PROCESSO>);
		OnCreated();
	}
	
	[Column(Storage="_ID_IMAGEM", AutoSync=AutoSync.OnInsert, DbType="Decimal(18,0) NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
	public decimal ID_IMAGEM
	{
		get
		{
			return this._ID_IMAGEM;
		}
		set
		{
			if ((this._ID_IMAGEM != value))
			{
				this.OnID_IMAGEMChanging(value);
				this.SendPropertyChanging();
				this._ID_IMAGEM = value;
				this.SendPropertyChanged("ID_IMAGEM");
				this.OnID_IMAGEMChanged();
			}
		}
	}
	
	[Column(Storage="_ID_PROCESSO", DbType="Decimal(18,0) NOT NULL")]
	public decimal ID_PROCESSO
	{
		get
		{
			return this._ID_PROCESSO;
		}
		set
		{
			if ((this._ID_PROCESSO != value))
			{
				if (this._PROCESSO.HasLoadedOrAssignedValue)
				{
					throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
				}
				this.OnID_PROCESSOChanging(value);
				this.SendPropertyChanging();
				this._ID_PROCESSO = value;
				this.SendPropertyChanged("ID_PROCESSO");
				this.OnID_PROCESSOChanged();
			}
		}
	}
	
	[Column(Storage="_ID_UTILIZADOR", DbType="Decimal(18,0) NOT NULL")]
	public decimal ID_UTILIZADOR
	{
		get
		{
			return this._ID_UTILIZADOR;
		}
		set
		{
			if ((this._ID_UTILIZADOR != value))
			{
				if (this._UTILIZADOR.HasLoadedOrAssignedValue)
				{
					throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
				}
				this.OnID_UTILIZADORChanging(value);
				this.SendPropertyChanging();
				this._ID_UTILIZADOR = value;
				this.SendPropertyChanged("ID_UTILIZADOR");
				this.OnID_UTILIZADORChanged();
			}
		}
	}
	
	[Column(Storage="_NOME_FICHEIRO", DbType="VarChar(50) NOT NULL", CanBeNull=false)]
	public string NOME_FICHEIRO
	{
		get
		{
			return this._NOME_FICHEIRO;
		}
		set
		{
			if ((this._NOME_FICHEIRO != value))
			{
				this.OnNOME_FICHEIROChanging(value);
				this.SendPropertyChanging();
				this._NOME_FICHEIRO = value;
				this.SendPropertyChanged("NOME_FICHEIRO");
				this.OnNOME_FICHEIROChanged();
			}
		}
	}
	
	[Column(Storage="_LEGENDA", DbType="VarChar(50)")]
	public string LEGENDA
	{
		get
		{
			return this._LEGENDA;
		}
		set
		{
			if ((this._LEGENDA != value))
			{
				this.OnLEGENDAChanging(value);
				this.SendPropertyChanging();
				this._LEGENDA = value;
				this.SendPropertyChanged("LEGENDA");
				this.OnLEGENDAChanged();
			}
		}
	}
	
	[Column(Storage="_ORDEM", DbType="Decimal(18,0) NOT NULL")]
	public decimal ORDEM
	{
		get
		{
			return this._ORDEM;
		}
		set
		{
			if ((this._ORDEM != value))
			{
				this.OnORDEMChanging(value);
				this.SendPropertyChanging();
				this._ORDEM = value;
				this.SendPropertyChanged("ORDEM");
				this.OnORDEMChanged();
			}
		}
	}
	
	[Column(Storage="_ULTIMA_ACTUALIZACAO", DbType="DateTime NOT NULL")]
	public System.DateTime ULTIMA_ACTUALIZACAO
	{
		get
		{
			return this._ULTIMA_ACTUALIZACAO;
		}
		set
		{
			if ((this._ULTIMA_ACTUALIZACAO != value))
			{
				this.OnULTIMA_ACTUALIZACAOChanging(value);
				this.SendPropertyChanging();
				this._ULTIMA_ACTUALIZACAO = value;
				this.SendPropertyChanged("ULTIMA_ACTUALIZACAO");
				this.OnULTIMA_ACTUALIZACAOChanged();
			}
		}
	}
	
	[Association(Name="UTILIZADOR_IMAGEM", Storage="_UTILIZADOR", ThisKey="ID_UTILIZADOR", IsForeignKey=true)]
	public UTILIZADOR UTILIZADOR
	{
		get
		{
			return this._UTILIZADOR.Entity;
		}
		set
		{
			UTILIZADOR previousValue = this._UTILIZADOR.Entity;
			if (((previousValue != value) 
						|| (this._UTILIZADOR.HasLoadedOrAssignedValue == false)))
			{
				this.SendPropertyChanging();
				if ((previousValue != null))
				{
					this._UTILIZADOR.Entity = null;
					previousValue.IMAGEMs.Remove(this);
				}
				this._UTILIZADOR.Entity = value;
				if ((value != null))
				{
					value.IMAGEMs.Add(this);
					this._ID_UTILIZADOR = value.ID_UTILIZADOR;
				}
				else
				{
					this._ID_UTILIZADOR = default(decimal);
				}
				this.SendPropertyChanged("UTILIZADOR");
			}
		}
	}
	
	[Association(Name="PROCESSO_IMAGEM", Storage="_PROCESSO", ThisKey="ID_PROCESSO", IsForeignKey=true)]
	public PROCESSO PROCESSO
	{
		get
		{
			return this._PROCESSO.Entity;
		}
		set
		{
			PROCESSO previousValue = this._PROCESSO.Entity;
			if (((previousValue != value) 
						|| (this._PROCESSO.HasLoadedOrAssignedValue == false)))
			{
				this.SendPropertyChanging();
				if ((previousValue != null))
				{
					this._PROCESSO.Entity = null;
					previousValue.IMAGEMs.Remove(this);
				}
				this._PROCESSO.Entity = value;
				if ((value != null))
				{
					value.IMAGEMs.Add(this);
					this._ID_PROCESSO = value.ID_PROCESSO;
				}
				else
				{
					this._ID_PROCESSO = default(decimal);
				}
				this.SendPropertyChanged("PROCESSO");
			}
		}
	}
	
	public event PropertyChangingEventHandler PropertyChanging;
	
	public event PropertyChangedEventHandler PropertyChanged;
	
	protected virtual void SendPropertyChanging()
	{
		if ((this.PropertyChanging != null))
		{
			this.PropertyChanging(this, emptyChangingEventArgs);
		}
	}
	
	protected virtual void SendPropertyChanged(String propertyName)
	{
		if ((this.PropertyChanged != null))
		{
			this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
		}
	}
}

[Table(Name="dbo.PROCESSO")]
public partial class PROCESSO : INotifyPropertyChanging, INotifyPropertyChanged
{
	
	private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
	
	private decimal _ID_PROCESSO;
	
	private decimal _ID_UTILIZADOR;
	
	private string _NUMERO_PROCESSO;
	
	private string _FICHEIRO_REQUERIMENTO;
	
	private System.DateTime _DATA_ENTRADA;
	
	private System.Nullable<System.DateTime> _DATA_CONCLUSAO;
	
	private System.Nullable<System.DateTime> _DATA_FINALIZACAO;
	
	private System.Nullable<bool> _IS_FINISHED;
	
	private string _OBSERVACOES;
	
	private System.DateTime _ULTIMA_ACTUALIZACAO;
	
	private EntitySet<ADENDA> _ADENDAs;
	
	private EntitySet<IMAGEM> _IMAGEMs;
	
	private EntitySet<SECCAO> _SECCAOs;
	
	private EntityRef<UTILIZADOR> _UTILIZADOR;
	
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnID_PROCESSOChanging(decimal value);
    partial void OnID_PROCESSOChanged();
    partial void OnID_UTILIZADORChanging(decimal value);
    partial void OnID_UTILIZADORChanged();
    partial void OnNUMERO_PROCESSOChanging(string value);
    partial void OnNUMERO_PROCESSOChanged();
    partial void OnFICHEIRO_REQUERIMENTOChanging(string value);
    partial void OnFICHEIRO_REQUERIMENTOChanged();
    partial void OnDATA_ENTRADAChanging(System.DateTime value);
    partial void OnDATA_ENTRADAChanged();
    partial void OnDATA_CONCLUSAOChanging(System.Nullable<System.DateTime> value);
    partial void OnDATA_CONCLUSAOChanged();
    partial void OnDATA_FINALIZACAOChanging(System.Nullable<System.DateTime> value);
    partial void OnDATA_FINALIZACAOChanged();
    partial void OnIS_FINISHEDChanging(System.Nullable<bool> value);
    partial void OnIS_FINISHEDChanged();
    partial void OnOBSERVACOESChanging(string value);
    partial void OnOBSERVACOESChanged();
    partial void OnULTIMA_ACTUALIZACAOChanging(System.DateTime value);
    partial void OnULTIMA_ACTUALIZACAOChanged();
    #endregion
	
	public PROCESSO()
	{
		this._ADENDAs = new EntitySet<ADENDA>(new Action<ADENDA>(this.attach_ADENDAs), new Action<ADENDA>(this.detach_ADENDAs));
		this._IMAGEMs = new EntitySet<IMAGEM>(new Action<IMAGEM>(this.attach_IMAGEMs), new Action<IMAGEM>(this.detach_IMAGEMs));
		this._SECCAOs = new EntitySet<SECCAO>(new Action<SECCAO>(this.attach_SECCAOs), new Action<SECCAO>(this.detach_SECCAOs));
		this._UTILIZADOR = default(EntityRef<UTILIZADOR>);
		OnCreated();
	}
	
	[Column(Storage="_ID_PROCESSO", AutoSync=AutoSync.OnInsert, DbType="Decimal(18,0) NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
	public decimal ID_PROCESSO
	{
		get
		{
			return this._ID_PROCESSO;
		}
		set
		{
			if ((this._ID_PROCESSO != value))
			{
				this.OnID_PROCESSOChanging(value);
				this.SendPropertyChanging();
				this._ID_PROCESSO = value;
				this.SendPropertyChanged("ID_PROCESSO");
				this.OnID_PROCESSOChanged();
			}
		}
	}
	
	[Column(Storage="_ID_UTILIZADOR", DbType="Decimal(18,0) NOT NULL")]
	public decimal ID_UTILIZADOR
	{
		get
		{
			return this._ID_UTILIZADOR;
		}
		set
		{
			if ((this._ID_UTILIZADOR != value))
			{
				if (this._UTILIZADOR.HasLoadedOrAssignedValue)
				{
					throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
				}
				this.OnID_UTILIZADORChanging(value);
				this.SendPropertyChanging();
				this._ID_UTILIZADOR = value;
				this.SendPropertyChanged("ID_UTILIZADOR");
				this.OnID_UTILIZADORChanged();
			}
		}
	}
	
	[Column(Storage="_NUMERO_PROCESSO", DbType="VarChar(20) NOT NULL", CanBeNull=false)]
	public string NUMERO_PROCESSO
	{
		get
		{
			return this._NUMERO_PROCESSO;
		}
		set
		{
			if ((this._NUMERO_PROCESSO != value))
			{
				this.OnNUMERO_PROCESSOChanging(value);
				this.SendPropertyChanging();
				this._NUMERO_PROCESSO = value;
				this.SendPropertyChanged("NUMERO_PROCESSO");
				this.OnNUMERO_PROCESSOChanged();
			}
		}
	}
	
	[Column(Storage="_FICHEIRO_REQUERIMENTO", DbType="VarChar(50)")]
	public string FICHEIRO_REQUERIMENTO
	{
		get
		{
			return this._FICHEIRO_REQUERIMENTO;
		}
		set
		{
			if ((this._FICHEIRO_REQUERIMENTO != value))
			{
				this.OnFICHEIRO_REQUERIMENTOChanging(value);
				this.SendPropertyChanging();
				this._FICHEIRO_REQUERIMENTO = value;
				this.SendPropertyChanged("FICHEIRO_REQUERIMENTO");
				this.OnFICHEIRO_REQUERIMENTOChanged();
			}
		}
	}
	
	[Column(Storage="_DATA_ENTRADA", DbType="DateTime NOT NULL")]
	public System.DateTime DATA_ENTRADA
	{
		get
		{
			return this._DATA_ENTRADA;
		}
		set
		{
			if ((this._DATA_ENTRADA != value))
			{
				this.OnDATA_ENTRADAChanging(value);
				this.SendPropertyChanging();
				this._DATA_ENTRADA = value;
				this.SendPropertyChanged("DATA_ENTRADA");
				this.OnDATA_ENTRADAChanged();
			}
		}
	}
	
	[Column(Storage="_DATA_CONCLUSAO", DbType="DateTime")]
	public System.Nullable<System.DateTime> DATA_CONCLUSAO
	{
		get
		{
			return this._DATA_CONCLUSAO;
		}
		set
		{
			if ((this._DATA_CONCLUSAO != value))
			{
				this.OnDATA_CONCLUSAOChanging(value);
				this.SendPropertyChanging();
				this._DATA_CONCLUSAO = value;
				this.SendPropertyChanged("DATA_CONCLUSAO");
				this.OnDATA_CONCLUSAOChanged();
			}
		}
	}
	
	[Column(Storage="_DATA_FINALIZACAO", DbType="DateTime")]
	public System.Nullable<System.DateTime> DATA_FINALIZACAO
	{
		get
		{
			return this._DATA_FINALIZACAO;
		}
		set
		{
			if ((this._DATA_FINALIZACAO != value))
			{
				this.OnDATA_FINALIZACAOChanging(value);
				this.SendPropertyChanging();
				this._DATA_FINALIZACAO = value;
				this.SendPropertyChanged("DATA_FINALIZACAO");
				this.OnDATA_FINALIZACAOChanged();
			}
		}
	}
	
	[Column(Storage="_IS_FINISHED", DbType="Bit")]
	public System.Nullable<bool> IS_FINISHED
	{
		get
		{
			return this._IS_FINISHED;
		}
		set
		{
			if ((this._IS_FINISHED != value))
			{
				this.OnIS_FINISHEDChanging(value);
				this.SendPropertyChanging();
				this._IS_FINISHED = value;
				this.SendPropertyChanged("IS_FINISHED");
				this.OnIS_FINISHEDChanged();
			}
		}
	}
	
	[Column(Storage="_OBSERVACOES", DbType="VarChar(2000)")]
	public string OBSERVACOES
	{
		get
		{
			return this._OBSERVACOES;
		}
		set
		{
			if ((this._OBSERVACOES != value))
			{
				this.OnOBSERVACOESChanging(value);
				this.SendPropertyChanging();
				this._OBSERVACOES = value;
				this.SendPropertyChanged("OBSERVACOES");
				this.OnOBSERVACOESChanged();
			}
		}
	}
	
	[Column(Storage="_ULTIMA_ACTUALIZACAO", DbType="DateTime NOT NULL")]
	public System.DateTime ULTIMA_ACTUALIZACAO
	{
		get
		{
			return this._ULTIMA_ACTUALIZACAO;
		}
		set
		{
			if ((this._ULTIMA_ACTUALIZACAO != value))
			{
				this.OnULTIMA_ACTUALIZACAOChanging(value);
				this.SendPropertyChanging();
				this._ULTIMA_ACTUALIZACAO = value;
				this.SendPropertyChanged("ULTIMA_ACTUALIZACAO");
				this.OnULTIMA_ACTUALIZACAOChanged();
			}
		}
	}
	
	[Association(Name="PROCESSO_ADENDA", Storage="_ADENDAs", OtherKey="ID_PROCESSO")]
	public EntitySet<ADENDA> ADENDAs
	{
		get
		{
			return this._ADENDAs;
		}
		set
		{
			this._ADENDAs.Assign(value);
		}
	}
	
	[Association(Name="PROCESSO_IMAGEM", Storage="_IMAGEMs", OtherKey="ID_PROCESSO")]
	public EntitySet<IMAGEM> IMAGEMs
	{
		get
		{
			return this._IMAGEMs;
		}
		set
		{
			this._IMAGEMs.Assign(value);
		}
	}
	
	[Association(Name="PROCESSO_SECCAO", Storage="_SECCAOs", OtherKey="ID_PROCESSO")]
	public EntitySet<SECCAO> SECCAOs
	{
		get
		{
			return this._SECCAOs;
		}
		set
		{
			this._SECCAOs.Assign(value);
		}
	}
	
	[Association(Name="UTILIZADOR_PROCESSO", Storage="_UTILIZADOR", ThisKey="ID_UTILIZADOR", IsForeignKey=true)]
	public UTILIZADOR UTILIZADOR
	{
		get
		{
			return this._UTILIZADOR.Entity;
		}
		set
		{
			UTILIZADOR previousValue = this._UTILIZADOR.Entity;
			if (((previousValue != value) 
						|| (this._UTILIZADOR.HasLoadedOrAssignedValue == false)))
			{
				this.SendPropertyChanging();
				if ((previousValue != null))
				{
					this._UTILIZADOR.Entity = null;
					previousValue.PROCESSOs.Remove(this);
				}
				this._UTILIZADOR.Entity = value;
				if ((value != null))
				{
					value.PROCESSOs.Add(this);
					this._ID_UTILIZADOR = value.ID_UTILIZADOR;
				}
				else
				{
					this._ID_UTILIZADOR = default(decimal);
				}
				this.SendPropertyChanged("UTILIZADOR");
			}
		}
	}
	
	public event PropertyChangingEventHandler PropertyChanging;
	
	public event PropertyChangedEventHandler PropertyChanged;
	
	protected virtual void SendPropertyChanging()
	{
		if ((this.PropertyChanging != null))
		{
			this.PropertyChanging(this, emptyChangingEventArgs);
		}
	}
	
	protected virtual void SendPropertyChanged(String propertyName)
	{
		if ((this.PropertyChanged != null))
		{
			this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
		}
	}
	
	private void attach_ADENDAs(ADENDA entity)
	{
		this.SendPropertyChanging();
		entity.PROCESSO = this;
	}
	
	private void detach_ADENDAs(ADENDA entity)
	{
		this.SendPropertyChanging();
		entity.PROCESSO = null;
	}
	
	private void attach_IMAGEMs(IMAGEM entity)
	{
		this.SendPropertyChanging();
		entity.PROCESSO = this;
	}
	
	private void detach_IMAGEMs(IMAGEM entity)
	{
		this.SendPropertyChanging();
		entity.PROCESSO = null;
	}
	
	private void attach_SECCAOs(SECCAO entity)
	{
		this.SendPropertyChanging();
		entity.PROCESSO = this;
	}
	
	private void detach_SECCAOs(SECCAO entity)
	{
		this.SendPropertyChanging();
		entity.PROCESSO = null;
	}
}

[Table(Name="dbo.SECCAO")]
public partial class SECCAO : INotifyPropertyChanging, INotifyPropertyChanged
{
	
	private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
	
	private decimal _ID_SECCAO;
	
	private System.Nullable<decimal> _ID_SECCAO_PAI;
	
	private decimal _ID_PROCESSO;
	
	private decimal _ID_UTILIZADOR;
	
	private decimal _ORDEM;
	
	private string _TITULO;
	
	private string _DESCRICAO;
	
	private string _NOTAS;
	
	private System.DateTime _ULTIMA_ACTUALIZACAO;
	
	private EntitySet<SECCAO> _SECCAOs;
	
	private EntityRef<PROCESSO> _PROCESSO;
	
	private EntityRef<SECCAO> _SECCAO1;
	
	private EntityRef<UTILIZADOR> _UTILIZADOR;
	
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnID_SECCAOChanging(decimal value);
    partial void OnID_SECCAOChanged();
    partial void OnID_SECCAO_PAIChanging(System.Nullable<decimal> value);
    partial void OnID_SECCAO_PAIChanged();
    partial void OnID_PROCESSOChanging(decimal value);
    partial void OnID_PROCESSOChanged();
    partial void OnID_UTILIZADORChanging(decimal value);
    partial void OnID_UTILIZADORChanged();
    partial void OnORDEMChanging(decimal value);
    partial void OnORDEMChanged();
    partial void OnTITULOChanging(string value);
    partial void OnTITULOChanged();
    partial void OnDESCRICAOChanging(string value);
    partial void OnDESCRICAOChanged();
    partial void OnNOTASChanging(string value);
    partial void OnNOTASChanged();
    partial void OnULTIMA_ACTUALIZACAOChanging(System.DateTime value);
    partial void OnULTIMA_ACTUALIZACAOChanged();
    #endregion
	
	public SECCAO()
	{
		this._SECCAOs = new EntitySet<SECCAO>(new Action<SECCAO>(this.attach_SECCAOs), new Action<SECCAO>(this.detach_SECCAOs));
		this._PROCESSO = default(EntityRef<PROCESSO>);
		this._SECCAO1 = default(EntityRef<SECCAO>);
		this._UTILIZADOR = default(EntityRef<UTILIZADOR>);
		OnCreated();
	}
	
	[Column(Storage="_ID_SECCAO", AutoSync=AutoSync.OnInsert, DbType="Decimal(18,0) NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
	public decimal ID_SECCAO
	{
		get
		{
			return this._ID_SECCAO;
		}
		set
		{
			if ((this._ID_SECCAO != value))
			{
				this.OnID_SECCAOChanging(value);
				this.SendPropertyChanging();
				this._ID_SECCAO = value;
				this.SendPropertyChanged("ID_SECCAO");
				this.OnID_SECCAOChanged();
			}
		}
	}
	
	[Column(Storage="_ID_SECCAO_PAI", DbType="Decimal(18,0)")]
	public System.Nullable<decimal> ID_SECCAO_PAI
	{
		get
		{
			return this._ID_SECCAO_PAI;
		}
		set
		{
			if ((this._ID_SECCAO_PAI != value))
			{
				if (this._SECCAO1.HasLoadedOrAssignedValue)
				{
					throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
				}
				this.OnID_SECCAO_PAIChanging(value);
				this.SendPropertyChanging();
				this._ID_SECCAO_PAI = value;
				this.SendPropertyChanged("ID_SECCAO_PAI");
				this.OnID_SECCAO_PAIChanged();
			}
		}
	}
	
	[Column(Storage="_ID_PROCESSO", DbType="Decimal(18,0) NOT NULL")]
	public decimal ID_PROCESSO
	{
		get
		{
			return this._ID_PROCESSO;
		}
		set
		{
			if ((this._ID_PROCESSO != value))
			{
				if (this._PROCESSO.HasLoadedOrAssignedValue)
				{
					throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
				}
				this.OnID_PROCESSOChanging(value);
				this.SendPropertyChanging();
				this._ID_PROCESSO = value;
				this.SendPropertyChanged("ID_PROCESSO");
				this.OnID_PROCESSOChanged();
			}
		}
	}
	
	[Column(Storage="_ID_UTILIZADOR", DbType="Decimal(18,0) NOT NULL")]
	public decimal ID_UTILIZADOR
	{
		get
		{
			return this._ID_UTILIZADOR;
		}
		set
		{
			if ((this._ID_UTILIZADOR != value))
			{
				if (this._UTILIZADOR.HasLoadedOrAssignedValue)
				{
					throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
				}
				this.OnID_UTILIZADORChanging(value);
				this.SendPropertyChanging();
				this._ID_UTILIZADOR = value;
				this.SendPropertyChanged("ID_UTILIZADOR");
				this.OnID_UTILIZADORChanged();
			}
		}
	}
	
	[Column(Storage="_ORDEM", DbType="Decimal(18,0) NOT NULL")]
	public decimal ORDEM
	{
		get
		{
			return this._ORDEM;
		}
		set
		{
			if ((this._ORDEM != value))
			{
				this.OnORDEMChanging(value);
				this.SendPropertyChanging();
				this._ORDEM = value;
				this.SendPropertyChanged("ORDEM");
				this.OnORDEMChanged();
			}
		}
	}
	
	[Column(Storage="_TITULO", DbType="VarChar(50) NOT NULL", CanBeNull=false)]
	public string TITULO
	{
		get
		{
			return this._TITULO;
		}
		set
		{
			if ((this._TITULO != value))
			{
				this.OnTITULOChanging(value);
				this.SendPropertyChanging();
				this._TITULO = value;
				this.SendPropertyChanged("TITULO");
				this.OnTITULOChanged();
			}
		}
	}
	
	[Column(Storage="_DESCRICAO", DbType="VarChar(2000)")]
	public string DESCRICAO
	{
		get
		{
			return this._DESCRICAO;
		}
		set
		{
			if ((this._DESCRICAO != value))
			{
				this.OnDESCRICAOChanging(value);
				this.SendPropertyChanging();
				this._DESCRICAO = value;
				this.SendPropertyChanged("DESCRICAO");
				this.OnDESCRICAOChanged();
			}
		}
	}
	
	[Column(Storage="_NOTAS", DbType="VarChar(1000)")]
	public string NOTAS
	{
		get
		{
			return this._NOTAS;
		}
		set
		{
			if ((this._NOTAS != value))
			{
				this.OnNOTASChanging(value);
				this.SendPropertyChanging();
				this._NOTAS = value;
				this.SendPropertyChanged("NOTAS");
				this.OnNOTASChanged();
			}
		}
	}
	
	[Column(Storage="_ULTIMA_ACTUALIZACAO", DbType="DateTime NOT NULL")]
	public System.DateTime ULTIMA_ACTUALIZACAO
	{
		get
		{
			return this._ULTIMA_ACTUALIZACAO;
		}
		set
		{
			if ((this._ULTIMA_ACTUALIZACAO != value))
			{
				this.OnULTIMA_ACTUALIZACAOChanging(value);
				this.SendPropertyChanging();
				this._ULTIMA_ACTUALIZACAO = value;
				this.SendPropertyChanged("ULTIMA_ACTUALIZACAO");
				this.OnULTIMA_ACTUALIZACAOChanged();
			}
		}
	}
	
	[Association(Name="SECCAO_SECCAO", Storage="_SECCAOs", OtherKey="ID_SECCAO_PAI")]
	public EntitySet<SECCAO> SECCAOs
	{
		get
		{
			return this._SECCAOs;
		}
		set
		{
			this._SECCAOs.Assign(value);
		}
	}
	
	[Association(Name="PROCESSO_SECCAO", Storage="_PROCESSO", ThisKey="ID_PROCESSO", IsForeignKey=true)]
	public PROCESSO PROCESSO
	{
		get
		{
			return this._PROCESSO.Entity;
		}
		set
		{
			PROCESSO previousValue = this._PROCESSO.Entity;
			if (((previousValue != value) 
						|| (this._PROCESSO.HasLoadedOrAssignedValue == false)))
			{
				this.SendPropertyChanging();
				if ((previousValue != null))
				{
					this._PROCESSO.Entity = null;
					previousValue.SECCAOs.Remove(this);
				}
				this._PROCESSO.Entity = value;
				if ((value != null))
				{
					value.SECCAOs.Add(this);
					this._ID_PROCESSO = value.ID_PROCESSO;
				}
				else
				{
					this._ID_PROCESSO = default(decimal);
				}
				this.SendPropertyChanged("PROCESSO");
			}
		}
	}
	
	[Association(Name="SECCAO_SECCAO", Storage="_SECCAO1", ThisKey="ID_SECCAO_PAI", IsForeignKey=true)]
	public SECCAO SECCAO1
	{
		get
		{
			return this._SECCAO1.Entity;
		}
		set
		{
			SECCAO previousValue = this._SECCAO1.Entity;
			if (((previousValue != value) 
						|| (this._SECCAO1.HasLoadedOrAssignedValue == false)))
			{
				this.SendPropertyChanging();
				if ((previousValue != null))
				{
					this._SECCAO1.Entity = null;
					previousValue.SECCAOs.Remove(this);
				}
				this._SECCAO1.Entity = value;
				if ((value != null))
				{
					value.SECCAOs.Add(this);
					this._ID_SECCAO_PAI = value.ID_SECCAO;
				}
				else
				{
					this._ID_SECCAO_PAI = default(Nullable<decimal>);
				}
				this.SendPropertyChanged("SECCAO1");
			}
		}
	}
	
	[Association(Name="UTILIZADOR_SECCAO", Storage="_UTILIZADOR", ThisKey="ID_UTILIZADOR", IsForeignKey=true)]
	public UTILIZADOR UTILIZADOR
	{
		get
		{
			return this._UTILIZADOR.Entity;
		}
		set
		{
			UTILIZADOR previousValue = this._UTILIZADOR.Entity;
			if (((previousValue != value) 
						|| (this._UTILIZADOR.HasLoadedOrAssignedValue == false)))
			{
				this.SendPropertyChanging();
				if ((previousValue != null))
				{
					this._UTILIZADOR.Entity = null;
					previousValue.SECCAOs.Remove(this);
				}
				this._UTILIZADOR.Entity = value;
				if ((value != null))
				{
					value.SECCAOs.Add(this);
					this._ID_UTILIZADOR = value.ID_UTILIZADOR;
				}
				else
				{
					this._ID_UTILIZADOR = default(decimal);
				}
				this.SendPropertyChanged("UTILIZADOR");
			}
		}
	}
	
	public event PropertyChangingEventHandler PropertyChanging;
	
	public event PropertyChangedEventHandler PropertyChanged;
	
	protected virtual void SendPropertyChanging()
	{
		if ((this.PropertyChanging != null))
		{
			this.PropertyChanging(this, emptyChangingEventArgs);
		}
	}
	
	protected virtual void SendPropertyChanged(String propertyName)
	{
		if ((this.PropertyChanged != null))
		{
			this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
		}
	}
	
	private void attach_SECCAOs(SECCAO entity)
	{
		this.SendPropertyChanging();
		entity.SECCAO1 = this;
	}
	
	private void detach_SECCAOs(SECCAO entity)
	{
		this.SendPropertyChanging();
		entity.SECCAO1 = null;
	}
}
#pragma warning restore 1591
