#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.3053
//
//     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="Northwind")]
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 InsertOrder(Order instance);
  partial void UpdateOrder(Order instance);
  partial void DeleteOrder(Order instance);
  #endregion
	
	public DataClassesDataContext() : 
			base(global::System.Configuration.ConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].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<Customer> Customers
	{
		get
		{
			return this.GetTable<Customer>();
		}
	}
	
	public System.Data.Linq.Table<Order> Orders
	{
		get
		{
			return this.GetTable<Order>();
		}
	}
}

[Table(Name="dbo.Customers")]
public partial class Customer
{
	
	private string _CustomerID;
	
	private string _CompanyName;
	
	private string _ContactName;
	
	private string _ContactTitle;
	
	private string _Address;
	
	private string _City;
	
	private string _Region;
	
	private string _PostalCode;
	
	private string _Country;
	
	private string _Phone;
	
	private string _Fax;
	
	public Customer()
	{
	}
	
	[Column(Storage="_CustomerID", DbType="NChar(5) NOT NULL", CanBeNull=false)]
	public string CustomerID
	{
		get
		{
			return this._CustomerID;
		}
		set
		{
			if ((this._CustomerID != value))
			{
				this._CustomerID = value;
			}
		}
	}
	
	[Column(Storage="_CompanyName", DbType="NVarChar(40) NOT NULL", CanBeNull=false)]
	public string CompanyName
	{
		get
		{
			return this._CompanyName;
		}
		set
		{
			if ((this._CompanyName != value))
			{
				this._CompanyName = value;
			}
		}
	}
	
	[Column(Storage="_ContactName", DbType="NVarChar(30)")]
	public string ContactName
	{
		get
		{
			return this._ContactName;
		}
		set
		{
			if ((this._ContactName != value))
			{
				this._ContactName = value;
			}
		}
	}
	
	[Column(Storage="_ContactTitle", DbType="NVarChar(30)")]
	public string ContactTitle
	{
		get
		{
			return this._ContactTitle;
		}
		set
		{
			if ((this._ContactTitle != value))
			{
				this._ContactTitle = value;
			}
		}
	}
	
	[Column(Storage="_Address", DbType="NVarChar(60)")]
	public string Address
	{
		get
		{
			return this._Address;
		}
		set
		{
			if ((this._Address != value))
			{
				this._Address = value;
			}
		}
	}
	
	[Column(Storage="_City", DbType="NVarChar(15)")]
	public string City
	{
		get
		{
			return this._City;
		}
		set
		{
			if ((this._City != value))
			{
				this._City = value;
			}
		}
	}
	
	[Column(Storage="_Region", DbType="NVarChar(15)")]
	public string Region
	{
		get
		{
			return this._Region;
		}
		set
		{
			if ((this._Region != value))
			{
				this._Region = value;
			}
		}
	}
	
	[Column(Storage="_PostalCode", DbType="NVarChar(10)")]
	public string PostalCode
	{
		get
		{
			return this._PostalCode;
		}
		set
		{
			if ((this._PostalCode != value))
			{
				this._PostalCode = value;
			}
		}
	}
	
	[Column(Storage="_Country", DbType="NVarChar(15)")]
	public string Country
	{
		get
		{
			return this._Country;
		}
		set
		{
			if ((this._Country != value))
			{
				this._Country = value;
			}
		}
	}
	
	[Column(Storage="_Phone", DbType="NVarChar(24)")]
	public string Phone
	{
		get
		{
			return this._Phone;
		}
		set
		{
			if ((this._Phone != value))
			{
				this._Phone = value;
			}
		}
	}
	
	[Column(Storage="_Fax", DbType="NVarChar(24)")]
	public string Fax
	{
		get
		{
			return this._Fax;
		}
		set
		{
			if ((this._Fax != value))
			{
				this._Fax = value;
			}
		}
	}
}

[Table(Name="dbo.Orders")]
public partial class Order : INotifyPropertyChanging, INotifyPropertyChanged
{
	
	private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
	
	private int _OrderID;
	
	private string _CustomerID;
	
	private System.Nullable<int> _EmployeeID;
	
	private System.Nullable<System.DateTime> _OrderDate;
	
	private System.Nullable<System.DateTime> _RequiredDate;
	
	private System.Nullable<System.DateTime> _ShippedDate;
	
	private System.Nullable<int> _ShipVia;
	
	private System.Nullable<decimal> _Freight;
	
	private string _ShipName;
	
	private string _ShipAddress;
	
	private string _ShipCity;
	
	private string _ShipRegion;
	
	private string _ShipPostalCode;
	
	private string _ShipCountry;
	
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnOrderIDChanging(int value);
    partial void OnOrderIDChanged();
    partial void OnCustomerIDChanging(string value);
    partial void OnCustomerIDChanged();
    partial void OnEmployeeIDChanging(System.Nullable<int> value);
    partial void OnEmployeeIDChanged();
    partial void OnOrderDateChanging(System.Nullable<System.DateTime> value);
    partial void OnOrderDateChanged();
    partial void OnRequiredDateChanging(System.Nullable<System.DateTime> value);
    partial void OnRequiredDateChanged();
    partial void OnShippedDateChanging(System.Nullable<System.DateTime> value);
    partial void OnShippedDateChanged();
    partial void OnShipViaChanging(System.Nullable<int> value);
    partial void OnShipViaChanged();
    partial void OnFreightChanging(System.Nullable<decimal> value);
    partial void OnFreightChanged();
    partial void OnShipNameChanging(string value);
    partial void OnShipNameChanged();
    partial void OnShipAddressChanging(string value);
    partial void OnShipAddressChanged();
    partial void OnShipCityChanging(string value);
    partial void OnShipCityChanged();
    partial void OnShipRegionChanging(string value);
    partial void OnShipRegionChanged();
    partial void OnShipPostalCodeChanging(string value);
    partial void OnShipPostalCodeChanged();
    partial void OnShipCountryChanging(string value);
    partial void OnShipCountryChanged();
    #endregion
	
	public Order()
	{
		OnCreated();
	}
	
	[Column(Storage="_OrderID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
	public int OrderID
	{
		get
		{
			return this._OrderID;
		}
		set
		{
			if ((this._OrderID != value))
			{
				this.OnOrderIDChanging(value);
				this.SendPropertyChanging();
				this._OrderID = value;
				this.SendPropertyChanged("OrderID");
				this.OnOrderIDChanged();
			}
		}
	}
	
	[Column(Storage="_CustomerID", DbType="NChar(5)")]
	public string CustomerID
	{
		get
		{
			return this._CustomerID;
		}
		set
		{
			if ((this._CustomerID != value))
			{
				this.OnCustomerIDChanging(value);
				this.SendPropertyChanging();
				this._CustomerID = value;
				this.SendPropertyChanged("CustomerID");
				this.OnCustomerIDChanged();
			}
		}
	}
	
	[Column(Storage="_EmployeeID", DbType="Int")]
	public System.Nullable<int> EmployeeID
	{
		get
		{
			return this._EmployeeID;
		}
		set
		{
			if ((this._EmployeeID != value))
			{
				this.OnEmployeeIDChanging(value);
				this.SendPropertyChanging();
				this._EmployeeID = value;
				this.SendPropertyChanged("EmployeeID");
				this.OnEmployeeIDChanged();
			}
		}
	}
	
	[Column(Storage="_OrderDate", DbType="DateTime")]
	public System.Nullable<System.DateTime> OrderDate
	{
		get
		{
			return this._OrderDate;
		}
		set
		{
			if ((this._OrderDate != value))
			{
				this.OnOrderDateChanging(value);
				this.SendPropertyChanging();
				this._OrderDate = value;
				this.SendPropertyChanged("OrderDate");
				this.OnOrderDateChanged();
			}
		}
	}
	
	[Column(Storage="_RequiredDate", DbType="DateTime")]
	public System.Nullable<System.DateTime> RequiredDate
	{
		get
		{
			return this._RequiredDate;
		}
		set
		{
			if ((this._RequiredDate != value))
			{
				this.OnRequiredDateChanging(value);
				this.SendPropertyChanging();
				this._RequiredDate = value;
				this.SendPropertyChanged("RequiredDate");
				this.OnRequiredDateChanged();
			}
		}
	}
	
	[Column(Storage="_ShippedDate", DbType="DateTime")]
	public System.Nullable<System.DateTime> ShippedDate
	{
		get
		{
			return this._ShippedDate;
		}
		set
		{
			if ((this._ShippedDate != value))
			{
				this.OnShippedDateChanging(value);
				this.SendPropertyChanging();
				this._ShippedDate = value;
				this.SendPropertyChanged("ShippedDate");
				this.OnShippedDateChanged();
			}
		}
	}
	
	[Column(Storage="_ShipVia", DbType="Int")]
	public System.Nullable<int> ShipVia
	{
		get
		{
			return this._ShipVia;
		}
		set
		{
			if ((this._ShipVia != value))
			{
				this.OnShipViaChanging(value);
				this.SendPropertyChanging();
				this._ShipVia = value;
				this.SendPropertyChanged("ShipVia");
				this.OnShipViaChanged();
			}
		}
	}
	
	[Column(Storage="_Freight", DbType="Money")]
	public System.Nullable<decimal> Freight
	{
		get
		{
			return this._Freight;
		}
		set
		{
			if ((this._Freight != value))
			{
				this.OnFreightChanging(value);
				this.SendPropertyChanging();
				this._Freight = value;
				this.SendPropertyChanged("Freight");
				this.OnFreightChanged();
			}
		}
	}
	
	[Column(Storage="_ShipName", DbType="NVarChar(40)")]
	public string ShipName
	{
		get
		{
			return this._ShipName;
		}
		set
		{
			if ((this._ShipName != value))
			{
				this.OnShipNameChanging(value);
				this.SendPropertyChanging();
				this._ShipName = value;
				this.SendPropertyChanged("ShipName");
				this.OnShipNameChanged();
			}
		}
	}
	
	[Column(Storage="_ShipAddress", DbType="NVarChar(60)")]
	public string ShipAddress
	{
		get
		{
			return this._ShipAddress;
		}
		set
		{
			if ((this._ShipAddress != value))
			{
				this.OnShipAddressChanging(value);
				this.SendPropertyChanging();
				this._ShipAddress = value;
				this.SendPropertyChanged("ShipAddress");
				this.OnShipAddressChanged();
			}
		}
	}
	
	[Column(Storage="_ShipCity", DbType="NVarChar(15)")]
	public string ShipCity
	{
		get
		{
			return this._ShipCity;
		}
		set
		{
			if ((this._ShipCity != value))
			{
				this.OnShipCityChanging(value);
				this.SendPropertyChanging();
				this._ShipCity = value;
				this.SendPropertyChanged("ShipCity");
				this.OnShipCityChanged();
			}
		}
	}
	
	[Column(Storage="_ShipRegion", DbType="NVarChar(15)")]
	public string ShipRegion
	{
		get
		{
			return this._ShipRegion;
		}
		set
		{
			if ((this._ShipRegion != value))
			{
				this.OnShipRegionChanging(value);
				this.SendPropertyChanging();
				this._ShipRegion = value;
				this.SendPropertyChanged("ShipRegion");
				this.OnShipRegionChanged();
			}
		}
	}
	
	[Column(Storage="_ShipPostalCode", DbType="NVarChar(10)")]
	public string ShipPostalCode
	{
		get
		{
			return this._ShipPostalCode;
		}
		set
		{
			if ((this._ShipPostalCode != value))
			{
				this.OnShipPostalCodeChanging(value);
				this.SendPropertyChanging();
				this._ShipPostalCode = value;
				this.SendPropertyChanged("ShipPostalCode");
				this.OnShipPostalCodeChanged();
			}
		}
	}
	
	[Column(Storage="_ShipCountry", DbType="NVarChar(15)")]
	public string ShipCountry
	{
		get
		{
			return this._ShipCountry;
		}
		set
		{
			if ((this._ShipCountry != value))
			{
				this.OnShipCountryChanging(value);
				this.SendPropertyChanging();
				this._ShipCountry = value;
				this.SendPropertyChanged("ShipCountry");
				this.OnShipCountryChanged();
			}
		}
	}
	
	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));
		}
	}
}
#pragma warning restore 1591
