
namespace Hierarchy_RIA.Web
{
	using System;
	using System.Collections.Generic;
	using System.ComponentModel;
	using System.ComponentModel.DataAnnotations;
	using System.Data.Objects.DataClasses;
	using System.Linq;
	using System.ServiceModel.DomainServices.Hosting;
	using System.ServiceModel.DomainServices.Server;


	// The MetadataTypeAttribute identifies OrderMetadata as the class
	// that carries additional metadata for the Order class.
	
	[MetadataTypeAttribute(typeof(Order.OrderMetadata))]
	public partial class Order
	{

		// This class allows you to attach custom attributes to properties
		// of the Order class.
		//
		// For example, the following marks the Xyz property as a
		// required property and specifies the format for valid values:
		//    [Required]
		//    [RegularExpression("[A-Z][A-Za-z0-9]*")]
		//    [StringLength(32)]
		//    public string Xyz { get; set; }
		internal sealed class OrderMetadata
		{

			// Metadata classes are not meant to be instantiated.
			private OrderMetadata()
			{
			}

			public Customer Customer { get; set; }

			public string CustomerID { get; set; }

			public Employee Employee { get; set; }

			public Nullable<int> EmployeeID { get; set; }

			public Nullable<decimal> Freight { get; set; }

			[Include]
			public EntityCollection<Order_Detail> Order_Details { get; set; }

			public Nullable<DateTime> OrderDate { get; set; }

			public int OrderID { get; set; }

			public Nullable<DateTime> RequiredDate { get; set; }

			public string ShipAddress { get; set; }

			public string ShipCity { get; set; }

			public string ShipCountry { get; set; }

			public string ShipName { get; set; }

			public Nullable<DateTime> ShippedDate { get; set; }

			public Shipper Shipper { get; set; }

			public string ShipPostalCode { get; set; }

			public string ShipRegion { get; set; }

			public Nullable<int> ShipVia { get; set; }
		}

		
	}

	// The MetadataTypeAttribute identifies Order_DetailMetadata as the class
	// that carries additional metadata for the Order_Detail class.
	[MetadataTypeAttribute(typeof(Order_Detail.Order_DetailMetadata))]
	public partial class Order_Detail
	{

		// This class allows you to attach custom attributes to properties
		// of the Order_Detail class.
		//
		// For example, the following marks the Xyz property as a
		// required property and specifies the format for valid values:
		//    [Required]
		//    [RegularExpression("[A-Z][A-Za-z0-9]*")]
		//    [StringLength(32)]
		//    public string Xyz { get; set; }
		internal sealed class Order_DetailMetadata
		{

			// Metadata classes are not meant to be instantiated.
			private Order_DetailMetadata()
			{
			}

			public float Discount { get; set; }

			public Order Order { get; set; }

			public int OrderID { get; set; }

			public Product Product { get; set; }

			public int ProductID { get; set; }

			public short Quantity { get; set; }

			public decimal UnitPrice { get; set; }
		}
	}
}
