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

// Generation date: 2/16/2015 10:02:37 AM
namespace Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference
{
    /// <summary>
    /// There are no comments for DefaultContainer in the schema.
    /// </summary>
    public partial class DefaultContainer : global::Microsoft.OData.Client.DataServiceContext
    {
        /// <summary>
        /// Initialize a new DefaultContainer object.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public DefaultContainer(global::System.Uri serviceRoot) : 
                base(serviceRoot, global::Microsoft.OData.Client.ODataProtocolVersion.V4)
        {
            this.ResolveName = new global::System.Func<global::System.Type, string>(this.ResolveNameFromType);
            this.ResolveType = new global::System.Func<string, global::System.Type>(this.ResolveTypeFromName);
            this.OnContextCreated();
            this.Format.LoadServiceModel = GeneratedEdmModel.GetInstance;
            this.Format.UseJson();
        }
        partial void OnContextCreated();
        /// <summary>
        /// Since the namespace configured for this service reference
        /// in Visual Studio is different from the one indicated in the
        /// server schema, use type-mappers to map between the two.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        protected global::System.Type ResolveTypeFromName(string typeName)
        {
            global::System.Type resolvedType = this.DefaultResolveType(typeName, "Microsoft.Test.OData.Services.AstoriaDefaultService", "Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference");
            if ((resolvedType != null))
            {
                return resolvedType;
            }
            return null;
        }
        /// <summary>
        /// Since the namespace configured for this service reference
        /// in Visual Studio is different from the one indicated in the
        /// server schema, use type-mappers to map between the two.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        protected string ResolveNameFromType(global::System.Type clientType)
        {
            if (clientType.Namespace.Equals("Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference", global::System.StringComparison.Ordinal))
            {
                return string.Concat("Microsoft.Test.OData.Services.AstoriaDefaultService.", clientType.Name);
            }
            return clientType.FullName;
        }
        /// <summary>
        /// There are no comments for AllGeoTypesSet in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<AllSpatialTypes> AllGeoTypesSet
        {
            get
            {
                if ((this._AllGeoTypesSet == null))
                {
                    this._AllGeoTypesSet = base.CreateQuery<AllSpatialTypes>("AllGeoTypesSet");
                }
                return this._AllGeoTypesSet;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<AllSpatialTypes> _AllGeoTypesSet;
        /// <summary>
        /// There are no comments for AllGeoCollectionTypesSet in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<AllSpatialCollectionTypes> AllGeoCollectionTypesSet
        {
            get
            {
                if ((this._AllGeoCollectionTypesSet == null))
                {
                    this._AllGeoCollectionTypesSet = base.CreateQuery<AllSpatialCollectionTypes>("AllGeoCollectionTypesSet");
                }
                return this._AllGeoCollectionTypesSet;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<AllSpatialCollectionTypes> _AllGeoCollectionTypesSet;
        /// <summary>
        /// There are no comments for Customer in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<Customer> Customer
        {
            get
            {
                if ((this._Customer == null))
                {
                    this._Customer = base.CreateQuery<Customer>("Customer");
                }
                return this._Customer;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<Customer> _Customer;
        /// <summary>
        /// There are no comments for Login in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<Login> Login
        {
            get
            {
                if ((this._Login == null))
                {
                    this._Login = base.CreateQuery<Login>("Login");
                }
                return this._Login;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<Login> _Login;
        /// <summary>
        /// There are no comments for RSAToken in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<RSAToken> RSAToken
        {
            get
            {
                if ((this._RSAToken == null))
                {
                    this._RSAToken = base.CreateQuery<RSAToken>("RSAToken");
                }
                return this._RSAToken;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<RSAToken> _RSAToken;
        /// <summary>
        /// There are no comments for PageView in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<PageView> PageView
        {
            get
            {
                if ((this._PageView == null))
                {
                    this._PageView = base.CreateQuery<PageView>("PageView");
                }
                return this._PageView;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<PageView> _PageView;
        /// <summary>
        /// There are no comments for LastLogin in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<LastLogin> LastLogin
        {
            get
            {
                if ((this._LastLogin == null))
                {
                    this._LastLogin = base.CreateQuery<LastLogin>("LastLogin");
                }
                return this._LastLogin;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<LastLogin> _LastLogin;
        /// <summary>
        /// There are no comments for Message in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<Message> Message
        {
            get
            {
                if ((this._Message == null))
                {
                    this._Message = base.CreateQuery<Message>("Message");
                }
                return this._Message;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<Message> _Message;
        /// <summary>
        /// There are no comments for MessageAttachment in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<MessageAttachment> MessageAttachment
        {
            get
            {
                if ((this._MessageAttachment == null))
                {
                    this._MessageAttachment = base.CreateQuery<MessageAttachment>("MessageAttachment");
                }
                return this._MessageAttachment;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<MessageAttachment> _MessageAttachment;
        /// <summary>
        /// There are no comments for Order in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<Order> Order
        {
            get
            {
                if ((this._Order == null))
                {
                    this._Order = base.CreateQuery<Order>("Order");
                }
                return this._Order;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<Order> _Order;
        /// <summary>
        /// There are no comments for OrderLine in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<OrderLine> OrderLine
        {
            get
            {
                if ((this._OrderLine == null))
                {
                    this._OrderLine = base.CreateQuery<OrderLine>("OrderLine");
                }
                return this._OrderLine;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<OrderLine> _OrderLine;
        /// <summary>
        /// There are no comments for Product in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<Product> Product
        {
            get
            {
                if ((this._Product == null))
                {
                    this._Product = base.CreateQuery<Product>("Product");
                }
                return this._Product;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<Product> _Product;
        /// <summary>
        /// There are no comments for ProductDetail in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<ProductDetail> ProductDetail
        {
            get
            {
                if ((this._ProductDetail == null))
                {
                    this._ProductDetail = base.CreateQuery<ProductDetail>("ProductDetail");
                }
                return this._ProductDetail;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<ProductDetail> _ProductDetail;
        /// <summary>
        /// There are no comments for ProductReview in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<ProductReview> ProductReview
        {
            get
            {
                if ((this._ProductReview == null))
                {
                    this._ProductReview = base.CreateQuery<ProductReview>("ProductReview");
                }
                return this._ProductReview;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<ProductReview> _ProductReview;
        /// <summary>
        /// There are no comments for ProductPhoto in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<ProductPhoto> ProductPhoto
        {
            get
            {
                if ((this._ProductPhoto == null))
                {
                    this._ProductPhoto = base.CreateQuery<ProductPhoto>("ProductPhoto");
                }
                return this._ProductPhoto;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<ProductPhoto> _ProductPhoto;
        /// <summary>
        /// There are no comments for CustomerInfo in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<CustomerInfo> CustomerInfo
        {
            get
            {
                if ((this._CustomerInfo == null))
                {
                    this._CustomerInfo = base.CreateQuery<CustomerInfo>("CustomerInfo");
                }
                return this._CustomerInfo;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<CustomerInfo> _CustomerInfo;
        /// <summary>
        /// There are no comments for Computer in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<Computer> Computer
        {
            get
            {
                if ((this._Computer == null))
                {
                    this._Computer = base.CreateQuery<Computer>("Computer");
                }
                return this._Computer;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<Computer> _Computer;
        /// <summary>
        /// There are no comments for ComputerDetail in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<ComputerDetail> ComputerDetail
        {
            get
            {
                if ((this._ComputerDetail == null))
                {
                    this._ComputerDetail = base.CreateQuery<ComputerDetail>("ComputerDetail");
                }
                return this._ComputerDetail;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<ComputerDetail> _ComputerDetail;
        /// <summary>
        /// There are no comments for Driver in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<Driver> Driver
        {
            get
            {
                if ((this._Driver == null))
                {
                    this._Driver = base.CreateQuery<Driver>("Driver");
                }
                return this._Driver;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<Driver> _Driver;
        /// <summary>
        /// There are no comments for License in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<License> License
        {
            get
            {
                if ((this._License == null))
                {
                    this._License = base.CreateQuery<License>("License");
                }
                return this._License;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<License> _License;
        /// <summary>
        /// There are no comments for MappedEntityType in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<MappedEntityType> MappedEntityType
        {
            get
            {
                if ((this._MappedEntityType == null))
                {
                    this._MappedEntityType = base.CreateQuery<MappedEntityType>("MappedEntityType");
                }
                return this._MappedEntityType;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<MappedEntityType> _MappedEntityType;
        /// <summary>
        /// There are no comments for Car in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<Car> Car
        {
            get
            {
                if ((this._Car == null))
                {
                    this._Car = base.CreateQuery<Car>("Car");
                }
                return this._Car;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<Car> _Car;
        /// <summary>
        /// There are no comments for Person in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<Person> Person
        {
            get
            {
                if ((this._Person == null))
                {
                    this._Person = base.CreateQuery<Person>("Person");
                }
                return this._Person;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<Person> _Person;
        /// <summary>
        /// There are no comments for PersonMetadata in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<PersonMetadata> PersonMetadata
        {
            get
            {
                if ((this._PersonMetadata == null))
                {
                    this._PersonMetadata = base.CreateQuery<PersonMetadata>("PersonMetadata");
                }
                return this._PersonMetadata;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<PersonMetadata> _PersonMetadata;
        /// <summary>
        /// There are no comments for AllGeoTypesSet in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToAllGeoTypesSet(AllSpatialTypes allSpatialTypes)
        {
            base.AddObject("AllGeoTypesSet", allSpatialTypes);
        }
        /// <summary>
        /// There are no comments for AllGeoCollectionTypesSet in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToAllGeoCollectionTypesSet(AllSpatialCollectionTypes allSpatialCollectionTypes)
        {
            base.AddObject("AllGeoCollectionTypesSet", allSpatialCollectionTypes);
        }
        /// <summary>
        /// There are no comments for Customer in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToCustomer(Customer customer)
        {
            base.AddObject("Customer", customer);
        }
        /// <summary>
        /// There are no comments for Login in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToLogin(Login login)
        {
            base.AddObject("Login", login);
        }
        /// <summary>
        /// There are no comments for RSAToken in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToRSAToken(RSAToken rSAToken)
        {
            base.AddObject("RSAToken", rSAToken);
        }
        /// <summary>
        /// There are no comments for PageView in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToPageView(PageView pageView)
        {
            base.AddObject("PageView", pageView);
        }
        /// <summary>
        /// There are no comments for LastLogin in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToLastLogin(LastLogin lastLogin)
        {
            base.AddObject("LastLogin", lastLogin);
        }
        /// <summary>
        /// There are no comments for Message in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToMessage(Message message)
        {
            base.AddObject("Message", message);
        }
        /// <summary>
        /// There are no comments for MessageAttachment in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToMessageAttachment(MessageAttachment messageAttachment)
        {
            base.AddObject("MessageAttachment", messageAttachment);
        }
        /// <summary>
        /// There are no comments for Order in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToOrder(Order order)
        {
            base.AddObject("Order", order);
        }
        /// <summary>
        /// There are no comments for OrderLine in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToOrderLine(OrderLine orderLine)
        {
            base.AddObject("OrderLine", orderLine);
        }
        /// <summary>
        /// There are no comments for Product in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToProduct(Product product)
        {
            base.AddObject("Product", product);
        }
        /// <summary>
        /// There are no comments for ProductDetail in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToProductDetail(ProductDetail productDetail)
        {
            base.AddObject("ProductDetail", productDetail);
        }
        /// <summary>
        /// There are no comments for ProductReview in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToProductReview(ProductReview productReview)
        {
            base.AddObject("ProductReview", productReview);
        }
        /// <summary>
        /// There are no comments for ProductPhoto in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToProductPhoto(ProductPhoto productPhoto)
        {
            base.AddObject("ProductPhoto", productPhoto);
        }
        /// <summary>
        /// There are no comments for CustomerInfo in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToCustomerInfo(CustomerInfo customerInfo)
        {
            base.AddObject("CustomerInfo", customerInfo);
        }
        /// <summary>
        /// There are no comments for Computer in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToComputer(Computer computer)
        {
            base.AddObject("Computer", computer);
        }
        /// <summary>
        /// There are no comments for ComputerDetail in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToComputerDetail(ComputerDetail computerDetail)
        {
            base.AddObject("ComputerDetail", computerDetail);
        }
        /// <summary>
        /// There are no comments for Driver in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToDriver(Driver driver)
        {
            base.AddObject("Driver", driver);
        }
        /// <summary>
        /// There are no comments for License in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToLicense(License license)
        {
            base.AddObject("License", license);
        }
        /// <summary>
        /// There are no comments for MappedEntityType in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToMappedEntityType(MappedEntityType mappedEntityType)
        {
            base.AddObject("MappedEntityType", mappedEntityType);
        }
        /// <summary>
        /// There are no comments for Car in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToCar(Car car)
        {
            base.AddObject("Car", car);
        }
        /// <summary>
        /// There are no comments for Person in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToPerson(Person person)
        {
            base.AddObject("Person", person);
        }
        /// <summary>
        /// There are no comments for PersonMetadata in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public void AddToPersonMetadata(PersonMetadata personMetadata)
        {
            base.AddObject("PersonMetadata", personMetadata);
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private abstract class GeneratedEdmModel
        {
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
            private static global::Microsoft.OData.Edm.IEdmModel ParsedModel = LoadModelFromString();
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
            private const string Edmx = @"<edmx:Edmx Version=""4.0"" xmlns:edmx=""http://docs.oasis-open.org/odata/ns/edmx"">
  <edmx:DataServices>
    <Schema Namespace=""Microsoft.Test.OData.Services.AstoriaDefaultService"" xmlns=""http://docs.oasis-open.org/odata/ns/edm"">
      <EntityType Name=""AllSpatialTypes"">
        <Key>
          <PropertyRef Name=""Id"" />
        </Key>
        <Property Name=""Id"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Geog"" Type=""Edm.Geography"" SRID=""Variable"" />
        <Property Name=""GeogPoint"" Type=""Edm.GeographyPoint"" SRID=""Variable"" />
        <Property Name=""GeogLine"" Type=""Edm.GeographyLineString"" SRID=""Variable"" />
        <Property Name=""GeogPolygon"" Type=""Edm.GeographyPolygon"" SRID=""Variable"" />
        <Property Name=""GeogCollection"" Type=""Edm.GeographyCollection"" SRID=""Variable"" />
        <Property Name=""GeogMultiPoint"" Type=""Edm.GeographyMultiPoint"" SRID=""Variable"" />
        <Property Name=""GeogMultiLine"" Type=""Edm.GeographyMultiLineString"" SRID=""Variable"" />
        <Property Name=""GeogMultiPolygon"" Type=""Edm.GeographyMultiPolygon"" SRID=""Variable"" />
        <Property Name=""Geom"" Type=""Edm.Geometry"" SRID=""Variable"" />
        <Property Name=""GeomPoint"" Type=""Edm.GeometryPoint"" SRID=""Variable"" />
        <Property Name=""GeomLine"" Type=""Edm.GeometryLineString"" SRID=""Variable"" />
        <Property Name=""GeomPolygon"" Type=""Edm.GeometryPolygon"" SRID=""Variable"" />
        <Property Name=""GeomCollection"" Type=""Edm.GeometryCollection"" SRID=""Variable"" />
        <Property Name=""GeomMultiPoint"" Type=""Edm.GeometryMultiPoint"" SRID=""Variable"" />
        <Property Name=""GeomMultiLine"" Type=""Edm.GeometryMultiLineString"" SRID=""Variable"" />
        <Property Name=""GeomMultiPolygon"" Type=""Edm.GeometryMultiPolygon"" SRID=""Variable"" />
      </EntityType>
      <EntityType Name=""AllSpatialCollectionTypes"" Abstract=""true"">
        <Key>
          <PropertyRef Name=""Id"" />
        </Key>
        <Property Name=""Id"" Type=""Edm.Int32"" Nullable=""false"" />
      </EntityType>
      <EntityType Name=""Customer"">
        <Key>
          <PropertyRef Name=""CustomerId"" />
        </Key>
        <Property Name=""Thumbnail"" Type=""Edm.Stream"" Nullable=""false"" />
        <Property Name=""Video"" Type=""Edm.Stream"" Nullable=""false"" />
        <Property Name=""CustomerId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Name"" Type=""Edm.String"" />
        <Property Name=""PrimaryContactInfo"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails"" />
        <Property Name=""BackupContactInfo"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)"" Nullable=""false"" />
        <Property Name=""Auditing"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo"" />
        <NavigationProperty Name=""Orders"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Order)"" Partner=""Customer"" />
        <NavigationProperty Name=""Logins"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Login)"" Partner=""Customer"" />
        <NavigationProperty Name=""Husband"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Customer"" Partner=""Husband"" />
        <NavigationProperty Name=""Wife"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Customer"" Partner=""Wife"" />
        <NavigationProperty Name=""Info"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.CustomerInfo"" />
      </EntityType>
      <EntityType Name=""Login"">
        <Key>
          <PropertyRef Name=""Username"" />
        </Key>
        <Property Name=""Username"" Type=""Edm.String"" Nullable=""false"" />
        <Property Name=""CustomerId"" Type=""Edm.Int32"" Nullable=""false"" />
        <NavigationProperty Name=""Customer"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Customer"" Partner=""Logins"" />
        <NavigationProperty Name=""LastLogin"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.LastLogin"" Partner=""Login"" />
        <NavigationProperty Name=""SentMessages"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Message)"" Partner=""Sender"" />
        <NavigationProperty Name=""ReceivedMessages"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Message)"" Partner=""Recipient"" />
        <NavigationProperty Name=""Orders"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Order)"" Partner=""Login"" />
      </EntityType>
      <EntityType Name=""RSAToken"">
        <Key>
          <PropertyRef Name=""Serial"" />
        </Key>
        <Property Name=""Serial"" Type=""Edm.String"" Nullable=""false"" />
        <Property Name=""Issued"" Type=""Edm.DateTimeOffset"" Nullable=""false"" />
        <NavigationProperty Name=""Login"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Login"" />
      </EntityType>
      <EntityType Name=""PageView"">
        <Key>
          <PropertyRef Name=""PageViewId"" />
        </Key>
        <Property Name=""PageViewId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Username"" Type=""Edm.String"" />
        <Property Name=""Viewed"" Type=""Edm.DateTimeOffset"" Nullable=""false"" />
        <Property Name=""TimeSpentOnPage"" Type=""Edm.Duration"" Nullable=""false"" />
        <Property Name=""PageUrl"" Type=""Edm.String"" />
        <NavigationProperty Name=""Login"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Login"" />
      </EntityType>
      <EntityType Name=""LastLogin"">
        <Key>
          <PropertyRef Name=""Username"" />
        </Key>
        <Property Name=""Username"" Type=""Edm.String"" Nullable=""false"" />
        <Property Name=""LoggedIn"" Type=""Edm.DateTimeOffset"" Nullable=""false"" />
        <Property Name=""LoggedOut"" Type=""Edm.DateTimeOffset"" />
        <Property Name=""Duration"" Type=""Edm.Duration"" Nullable=""false"" />
        <NavigationProperty Name=""Login"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Login"" Partner=""LastLogin"" />
      </EntityType>
      <EntityType Name=""Message"">
        <Key>
          <PropertyRef Name=""FromUsername"" />
          <PropertyRef Name=""MessageId"" />
        </Key>
        <Property Name=""MessageId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""FromUsername"" Type=""Edm.String"" Nullable=""false"" />
        <Property Name=""ToUsername"" Type=""Edm.String"" />
        <Property Name=""Sent"" Type=""Edm.DateTimeOffset"" Nullable=""false"" />
        <Property Name=""Subject"" Type=""Edm.String"" />
        <Property Name=""Body"" Type=""Edm.String"" />
        <Property Name=""IsRead"" Type=""Edm.Boolean"" Nullable=""false"" />
        <NavigationProperty Name=""Sender"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Login"" Partner=""SentMessages"" />
        <NavigationProperty Name=""Recipient"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Login"" Partner=""ReceivedMessages"" />
        <NavigationProperty Name=""Attachments"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.MessageAttachment)"" />
      </EntityType>
      <EntityType Name=""MessageAttachment"">
        <Key>
          <PropertyRef Name=""AttachmentId"" />
        </Key>
        <Property Name=""AttachmentId"" Type=""Edm.Guid"" Nullable=""false"" />
        <Property Name=""Attachment"" Type=""Edm.Binary"" />
      </EntityType>
      <EntityType Name=""Order"">
        <Key>
          <PropertyRef Name=""OrderId"" />
        </Key>
        <Property Name=""OrderId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""CustomerId"" Type=""Edm.Int32"" />
        <Property Name=""Concurrency"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo"" />
        <NavigationProperty Name=""Login"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Login"" Partner=""Orders"" />
        <NavigationProperty Name=""Customer"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Customer"" Partner=""Orders"" />
      </EntityType>
      <EntityType Name=""OrderLine"">
        <Key>
          <PropertyRef Name=""OrderId"" />
          <PropertyRef Name=""ProductId"" />
        </Key>
        <Property Name=""OrderLineStream"" Type=""Edm.Stream"" Nullable=""false"" />
        <Property Name=""OrderId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""ProductId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Quantity"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""ConcurrencyToken"" Type=""Edm.String"" ConcurrencyMode=""Fixed"" />
        <NavigationProperty Name=""Order"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Order"" />
        <NavigationProperty Name=""Product"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Product"" />
      </EntityType>
      <EntityType Name=""Product"">
        <Key>
          <PropertyRef Name=""ProductId"" />
        </Key>
        <Property Name=""Picture"" Type=""Edm.Stream"" Nullable=""false"" />
        <Property Name=""ProductId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Description"" Type=""Edm.String"" />
        <Property Name=""Dimensions"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions"" />
        <Property Name=""BaseConcurrency"" Type=""Edm.String"" ConcurrencyMode=""Fixed"" />
        <Property Name=""ComplexConcurrency"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo"" />
        <Property Name=""NestedComplexConcurrency"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo"" />
        <NavigationProperty Name=""RelatedProducts"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Product)"" Partner=""RelatedProducts"" />
        <NavigationProperty Name=""Detail"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.ProductDetail"" Partner=""Product"" />
        <NavigationProperty Name=""Reviews"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ProductReview)"" Partner=""Product"" />
        <NavigationProperty Name=""Photos"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ProductPhoto)"" />
      </EntityType>
      <EntityType Name=""ProductDetail"">
        <Key>
          <PropertyRef Name=""ProductId"" />
        </Key>
        <Property Name=""ProductId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Details"" Type=""Edm.String"" />
        <NavigationProperty Name=""Product"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Product"" Partner=""Detail"" />
      </EntityType>
      <EntityType Name=""ProductReview"">
        <Key>
          <PropertyRef Name=""ProductId"" />
          <PropertyRef Name=""ReviewId"" />
          <PropertyRef Name=""RevisionId"" />
        </Key>
        <Property Name=""ProductId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""ReviewId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Review"" Type=""Edm.String"" />
        <Property Name=""RevisionId"" Type=""Edm.String"" Nullable=""false"" />
        <NavigationProperty Name=""Product"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Product"" Partner=""Reviews"" />
      </EntityType>
      <EntityType Name=""ProductPhoto"">
        <Key>
          <PropertyRef Name=""PhotoId"" />
          <PropertyRef Name=""ProductId"" />
        </Key>
        <Property Name=""ProductId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""PhotoId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Photo"" Type=""Edm.Binary"" />
      </EntityType>
      <EntityType Name=""CustomerInfo"" HasStream=""true"">
        <Key>
          <PropertyRef Name=""CustomerInfoId"" />
        </Key>
        <Property Name=""CustomerInfoId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Information"" Type=""Edm.String"" />
      </EntityType>
      <EntityType Name=""Computer"">
        <Key>
          <PropertyRef Name=""ComputerId"" />
        </Key>
        <Property Name=""ComputerId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Name"" Type=""Edm.String"" />
        <NavigationProperty Name=""ComputerDetail"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail"" Partner=""Computer"" />
      </EntityType>
      <EntityType Name=""ComputerDetail"">
        <Key>
          <PropertyRef Name=""ComputerDetailId"" />
        </Key>
        <Property Name=""ComputerDetailId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Manufacturer"" Type=""Edm.String"" />
        <Property Name=""Model"" Type=""Edm.String"" />
        <Property Name=""Serial"" Type=""Edm.String"" />
        <Property Name=""SpecificationsBag"" Type=""Collection(Edm.String)"" Nullable=""false"" />
        <Property Name=""PurchaseDate"" Type=""Edm.DateTimeOffset"" Nullable=""false"" />
        <Property Name=""Dimensions"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions"" />
        <NavigationProperty Name=""Computer"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Computer"" Partner=""ComputerDetail"" />
      </EntityType>
      <EntityType Name=""Driver"">
        <Key>
          <PropertyRef Name=""Name"" />
        </Key>
        <Property Name=""Name"" Type=""Edm.String"" Nullable=""false"" />
        <Property Name=""BirthDate"" Type=""Edm.DateTimeOffset"" Nullable=""false"" />
        <NavigationProperty Name=""License"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.License"" Partner=""Driver"" />
      </EntityType>
      <EntityType Name=""License"">
        <Key>
          <PropertyRef Name=""Name"" />
        </Key>
        <Property Name=""Name"" Type=""Edm.String"" Nullable=""false"" />
        <Property Name=""LicenseNumber"" Type=""Edm.String"" />
        <Property Name=""LicenseClass"" Type=""Edm.String"" />
        <Property Name=""Restrictions"" Type=""Edm.String"" />
        <Property Name=""ExpirationDate"" Type=""Edm.DateTimeOffset"" Nullable=""false"" />
        <NavigationProperty Name=""Driver"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Driver"" Partner=""License"" />
      </EntityType>
      <EntityType Name=""MappedEntityType"">
        <Key>
          <PropertyRef Name=""Id"" />
        </Key>
        <Property Name=""Id"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Href"" Type=""Edm.String"" />
        <Property Name=""Title"" Type=""Edm.String"" />
        <Property Name=""HrefLang"" Type=""Edm.String"" />
        <Property Name=""Type"" Type=""Edm.String"" />
        <Property Name=""Length"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""BagOfPrimitiveToLinks"" Type=""Collection(Edm.String)"" Nullable=""false"" />
        <Property Name=""Logo"" Type=""Edm.Binary"" />
        <Property Name=""BagOfDecimals"" Type=""Collection(Edm.Decimal)"" Nullable=""false"" />
        <Property Name=""BagOfDoubles"" Type=""Collection(Edm.Double)"" Nullable=""false"" />
        <Property Name=""BagOfSingles"" Type=""Collection(Edm.Single)"" Nullable=""false"" />
        <Property Name=""BagOfBytes"" Type=""Collection(Edm.Byte)"" Nullable=""false"" />
        <Property Name=""BagOfInt16s"" Type=""Collection(Edm.Int16)"" Nullable=""false"" />
        <Property Name=""BagOfInt32s"" Type=""Collection(Edm.Int32)"" Nullable=""false"" />
        <Property Name=""BagOfInt64s"" Type=""Collection(Edm.Int64)"" Nullable=""false"" />
        <Property Name=""BagOfGuids"" Type=""Collection(Edm.Guid)"" Nullable=""false"" />
        <Property Name=""BagOfDateTimeOffset"" Type=""Collection(Edm.DateTimeOffset)"" Nullable=""false"" />
        <Property Name=""BagOfComplexToCategories"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ComplexToCategory)"" Nullable=""false"" />
        <Property Name=""ComplexPhone"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"" />
        <Property Name=""ComplexContactDetails"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails"" />
      </EntityType>
      <EntityType Name=""Car"" HasStream=""true"">
        <Key>
          <PropertyRef Name=""VIN"" />
        </Key>
        <Property Name=""Photo"" Type=""Edm.Stream"" Nullable=""false"" />
        <Property Name=""Video"" Type=""Edm.Stream"" Nullable=""false"" />
        <Property Name=""VIN"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Description"" Type=""Edm.String"" />
      </EntityType>
      <EntityType Name=""Person"">
        <Key>
          <PropertyRef Name=""PersonId"" />
        </Key>
        <Property Name=""PersonId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Name"" Type=""Edm.String"" />
        <NavigationProperty Name=""PersonMetadata"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata)"" Partner=""Person"" />
      </EntityType>
      <EntityType Name=""PersonMetadata"">
        <Key>
          <PropertyRef Name=""PersonMetadataId"" />
        </Key>
        <Property Name=""PersonMetadataId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""PersonId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""PropertyName"" Type=""Edm.String"" />
        <Property Name=""PropertyValue"" Type=""Edm.String"" />
        <NavigationProperty Name=""Person"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Person"" Partner=""PersonMetadata"" />
      </EntityType>
      <ComplexType Name=""ContactDetails"">
        <Property Name=""EmailBag"" Type=""Collection(Edm.String)"" Nullable=""false"" />
        <Property Name=""AlternativeNames"" Type=""Collection(Edm.String)"" Nullable=""false"" />
        <Property Name=""ContactAlias"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"" />
        <Property Name=""HomePhone"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"" />
        <Property Name=""WorkPhone"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"" />
        <Property Name=""MobilePhoneBag"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"" Nullable=""false"" />
      </ComplexType>
      <ComplexType Name=""AuditInfo"">
        <Property Name=""ModifiedDate"" Type=""Edm.DateTimeOffset"" Nullable=""false"" />
        <Property Name=""ModifiedBy"" Type=""Edm.String"" />
        <Property Name=""Concurrency"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo"" />
      </ComplexType>
      <ComplexType Name=""ConcurrencyInfo"">
        <Property Name=""Token"" Type=""Edm.String"" />
        <Property Name=""QueriedDateTime"" Type=""Edm.DateTimeOffset"" />
      </ComplexType>
      <ComplexType Name=""Dimensions"">
        <Property Name=""Width"" Type=""Edm.Decimal"" Nullable=""false"" />
        <Property Name=""Height"" Type=""Edm.Decimal"" Nullable=""false"" />
        <Property Name=""Depth"" Type=""Edm.Decimal"" Nullable=""false"" />
      </ComplexType>
      <ComplexType Name=""ComplexToCategory"">
        <Property Name=""Term"" Type=""Edm.String"" />
        <Property Name=""Scheme"" Type=""Edm.String"" />
        <Property Name=""Label"" Type=""Edm.String"" />
      </ComplexType>
      <ComplexType Name=""Phone"">
        <Property Name=""PhoneNumber"" Type=""Edm.String"" />
        <Property Name=""Extension"" Type=""Edm.String"" />
      </ComplexType>
      <ComplexType Name=""Aliases"">
        <Property Name=""AlternativeNames"" Type=""Collection(Edm.String)"" Nullable=""false"" />
      </ComplexType>
      <EntityType Name=""AllSpatialCollectionTypes_Simple"" BaseType=""Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialCollectionTypes"">
        <Property Name=""ManyGeogPoint"" Type=""Collection(Edm.GeographyPoint)"" Nullable=""false"" SRID=""Variable"" />
        <Property Name=""ManyGeogLine"" Type=""Collection(Edm.GeographyLineString)"" Nullable=""false"" SRID=""Variable"" />
        <Property Name=""ManyGeogPolygon"" Type=""Collection(Edm.GeographyPolygon)"" Nullable=""false"" SRID=""Variable"" />
        <Property Name=""ManyGeomPoint"" Type=""Collection(Edm.GeometryPoint)"" Nullable=""false"" SRID=""Variable"" />
        <Property Name=""ManyGeomLine"" Type=""Collection(Edm.GeometryLineString)"" Nullable=""false"" SRID=""Variable"" />
        <Property Name=""ManyGeomPolygon"" Type=""Collection(Edm.GeometryPolygon)"" Nullable=""false"" SRID=""Variable"" />
      </EntityType>
      <EntityType Name=""ProductPageView"" BaseType=""Microsoft.Test.OData.Services.AstoriaDefaultService.PageView"">
        <Property Name=""ProductId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""ConcurrencyToken"" Type=""Edm.String"" ConcurrencyMode=""Fixed"" />
      </EntityType>
      <EntityType Name=""BackOrderLine"" BaseType=""Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine"" />
      <EntityType Name=""BackOrderLine2"" BaseType=""Microsoft.Test.OData.Services.AstoriaDefaultService.BackOrderLine"" />
      <EntityType Name=""DiscontinuedProduct"" BaseType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Product"">
        <Property Name=""Discontinued"" Type=""Edm.DateTimeOffset"" Nullable=""false"" />
        <Property Name=""ReplacementProductId"" Type=""Edm.Int32"" />
        <Property Name=""DiscontinuedPhone"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"" />
        <Property Name=""ChildConcurrencyToken"" Type=""Edm.String"" ConcurrencyMode=""Fixed"" />
      </EntityType>
      <EntityType Name=""Contractor"" BaseType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Person"">
        <Property Name=""ContratorCompanyId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""BillingRate"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""TeamContactPersonId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""JobDescription"" Type=""Edm.String"" />
      </EntityType>
      <EntityType Name=""Employee"" BaseType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Person"">
        <Property Name=""ManagersPersonId"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Salary"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Title"" Type=""Edm.String"" />
        <NavigationProperty Name=""Manager"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Employee"" Partner=""Manager"" />
      </EntityType>
      <EntityType Name=""SpecialEmployee"" BaseType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Employee"">
        <Property Name=""CarsVIN"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Bonus"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""IsFullyVested"" Type=""Edm.Boolean"" Nullable=""false"" />
        <NavigationProperty Name=""Car"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Car"" />
      </EntityType>
      <ComplexType Name=""ComplexWithAllPrimitiveTypes"">
        <Property Name=""Binary"" Type=""Edm.Binary"" />
        <Property Name=""Boolean"" Type=""Edm.Boolean"" Nullable=""false"" />
        <Property Name=""Byte"" Type=""Edm.Byte"" Nullable=""false"" />
        <Property Name=""DateTimeOffset"" Type=""Edm.DateTimeOffset"" Nullable=""false"" />
        <Property Name=""Decimal"" Type=""Edm.Decimal"" Nullable=""false"" />
        <Property Name=""Double"" Type=""Edm.Double"" Nullable=""false"" />
        <Property Name=""Int16"" Type=""Edm.Int16"" Nullable=""false"" />
        <Property Name=""Int32"" Type=""Edm.Int32"" Nullable=""false"" />
        <Property Name=""Int64"" Type=""Edm.Int64"" Nullable=""false"" />
        <Property Name=""SByte"" Type=""Edm.SByte"" Nullable=""false"" />
        <Property Name=""String"" Type=""Edm.String"" />
        <Property Name=""Single"" Type=""Edm.Single"" Nullable=""false"" />
        <Property Name=""GeographyPoint"" Type=""Edm.GeographyPoint"" SRID=""Variable"" />
        <Property Name=""GeometryPoint"" Type=""Edm.GeometryPoint"" SRID=""Variable"" />
      </ComplexType>
      <Function Name=""GetPrimitiveString"">
        <ReturnType Type=""Edm.String"" />
      </Function>
      <Function Name=""GetSpecificCustomer"">
        <Parameter Name=""Name"" Type=""Edm.String"" />
        <ReturnType Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Customer)"" />
      </Function>
      <Function Name=""GetCustomerCount"" IsComposable=""true"">
        <ReturnType Type=""Edm.Int32"" Nullable=""false"" />
      </Function>
      <Function Name=""GetArgumentPlusOne"" IsComposable=""true"">
        <Parameter Name=""arg1"" Type=""Edm.Int32"" Nullable=""false"" />
        <ReturnType Type=""Edm.Int32"" Nullable=""false"" />
      </Function>
      <Function Name=""EntityProjectionReturnsCollectionOfComplexTypes"">
        <ReturnType Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)"" />
      </Function>
      <Action Name=""ResetDataSource"" />
      <Function Name=""InStreamErrorGetCustomer"">
        <ReturnType Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Customer)"" />
      </Function>
      <Action Name=""IncreaseSalaries"" IsBound=""true"">
        <Parameter Name=""employees"" Type=""Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Employee)"" />
        <Parameter Name=""n"" Type=""Edm.Int32"" Nullable=""false"" />
      </Action>
      <Action Name=""Sack"" IsBound=""true"">
        <Parameter Name=""employee"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Employee"" />
      </Action>
      <Action Name=""GetComputer"" IsBound=""true"" EntitySetPath=""computer"">
        <Parameter Name=""computer"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Computer"" />
        <ReturnType Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Computer"" />
      </Action>
      <Action Name=""ChangeCustomerAuditInfo"" IsBound=""true"">
        <Parameter Name=""customer"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.Customer"" />
        <Parameter Name=""auditInfo"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo"" />
      </Action>
      <Action Name=""ResetComputerDetailsSpecifications"" IsBound=""true"">
        <Parameter Name=""computerDetail"" Type=""Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail"" />
        <Parameter Name=""specifications"" Type=""Collection(Edm.String)"" Nullable=""false"" />
        <Parameter Name=""purchaseTime"" Type=""Edm.DateTimeOffset"" Nullable=""false"" />
      </Action>
      <EntityContainer Name=""DefaultContainer"">
        <EntitySet Name=""AllGeoTypesSet"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialTypes"" />
        <EntitySet Name=""AllGeoCollectionTypesSet"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialCollectionTypes"" />
        <EntitySet Name=""Customer"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Customer"">
          <NavigationPropertyBinding Path=""Orders"" Target=""Order"" />
          <NavigationPropertyBinding Path=""Logins"" Target=""Login"" />
          <NavigationPropertyBinding Path=""Husband"" Target=""Customer"" />
          <NavigationPropertyBinding Path=""Wife"" Target=""Customer"" />
          <NavigationPropertyBinding Path=""Info"" Target=""CustomerInfo"" />
        </EntitySet>
        <EntitySet Name=""Login"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Login"">
          <NavigationPropertyBinding Path=""Customer"" Target=""Customer"" />
          <NavigationPropertyBinding Path=""LastLogin"" Target=""LastLogin"" />
          <NavigationPropertyBinding Path=""SentMessages"" Target=""Message"" />
          <NavigationPropertyBinding Path=""ReceivedMessages"" Target=""Message"" />
          <NavigationPropertyBinding Path=""Orders"" Target=""Order"" />
        </EntitySet>
        <EntitySet Name=""RSAToken"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.RSAToken"">
          <NavigationPropertyBinding Path=""Login"" Target=""Login"" />
        </EntitySet>
        <EntitySet Name=""PageView"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.PageView"">
          <NavigationPropertyBinding Path=""Login"" Target=""Login"" />
        </EntitySet>
        <EntitySet Name=""LastLogin"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.LastLogin"">
          <NavigationPropertyBinding Path=""Login"" Target=""Login"" />
        </EntitySet>
        <EntitySet Name=""Message"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Message"">
          <NavigationPropertyBinding Path=""Sender"" Target=""Login"" />
          <NavigationPropertyBinding Path=""Recipient"" Target=""Login"" />
          <NavigationPropertyBinding Path=""Attachments"" Target=""MessageAttachment"" />
        </EntitySet>
        <EntitySet Name=""MessageAttachment"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.MessageAttachment"" />
        <EntitySet Name=""Order"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Order"">
          <NavigationPropertyBinding Path=""Customer"" Target=""Customer"" />
          <NavigationPropertyBinding Path=""Login"" Target=""Login"" />
        </EntitySet>
        <EntitySet Name=""OrderLine"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine"">
          <NavigationPropertyBinding Path=""Order"" Target=""Order"" />
          <NavigationPropertyBinding Path=""Product"" Target=""Product"" />
        </EntitySet>
        <EntitySet Name=""Product"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Product"">
          <NavigationPropertyBinding Path=""RelatedProducts"" Target=""Product"" />
          <NavigationPropertyBinding Path=""Detail"" Target=""ProductDetail"" />
          <NavigationPropertyBinding Path=""Reviews"" Target=""ProductReview"" />
          <NavigationPropertyBinding Path=""Photos"" Target=""ProductPhoto"" />
        </EntitySet>
        <EntitySet Name=""ProductDetail"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.ProductDetail"">
          <NavigationPropertyBinding Path=""Product"" Target=""Product"" />
        </EntitySet>
        <EntitySet Name=""ProductReview"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.ProductReview"">
          <NavigationPropertyBinding Path=""Product"" Target=""Product"" />
        </EntitySet>
        <EntitySet Name=""ProductPhoto"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.ProductPhoto"" />
        <EntitySet Name=""CustomerInfo"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.CustomerInfo"" />
        <EntitySet Name=""Computer"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Computer"">
          <NavigationPropertyBinding Path=""ComputerDetail"" Target=""ComputerDetail"" />
        </EntitySet>
        <EntitySet Name=""ComputerDetail"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail"">
          <NavigationPropertyBinding Path=""Computer"" Target=""Computer"" />
        </EntitySet>
        <EntitySet Name=""Driver"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Driver"">
          <NavigationPropertyBinding Path=""License"" Target=""License"" />
        </EntitySet>
        <EntitySet Name=""License"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.License"">
          <NavigationPropertyBinding Path=""Driver"" Target=""Driver"" />
        </EntitySet>
        <EntitySet Name=""MappedEntityType"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.MappedEntityType"" />
        <EntitySet Name=""Car"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Car"" />
        <EntitySet Name=""Person"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.Person"">
          <NavigationPropertyBinding Path=""Microsoft.Test.OData.Services.AstoriaDefaultService.Employee/Manager"" Target=""Person"" />
          <NavigationPropertyBinding Path=""Microsoft.Test.OData.Services.AstoriaDefaultService.SpecialEmployee/Car"" Target=""Car"" />
          <NavigationPropertyBinding Path=""PersonMetadata"" Target=""PersonMetadata"" />
        </EntitySet>
        <EntitySet Name=""PersonMetadata"" EntityType=""Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata"">
          <NavigationPropertyBinding Path=""Person"" Target=""Person"" />
        </EntitySet>
        <FunctionImport Name=""GetPrimitiveString"" Function=""Microsoft.Test.OData.Services.AstoriaDefaultService.GetPrimitiveString"" />
        <FunctionImport Name=""GetSpecificCustomer"" Function=""Microsoft.Test.OData.Services.AstoriaDefaultService.GetSpecificCustomer"" EntitySet=""Customer"" />
        <FunctionImport Name=""GetCustomerCount"" Function=""Microsoft.Test.OData.Services.AstoriaDefaultService.GetCustomerCount"" />
        <FunctionImport Name=""GetArgumentPlusOne"" Function=""Microsoft.Test.OData.Services.AstoriaDefaultService.GetArgumentPlusOne"" />
        <FunctionImport Name=""EntityProjectionReturnsCollectionOfComplexTypes"" Function=""Microsoft.Test.OData.Services.AstoriaDefaultService.EntityProjectionReturnsCollectionOfComplexTypes"" />
        <ActionImport Name=""ResetDataSource"" Action=""Microsoft.Test.OData.Services.AstoriaDefaultService.ResetDataSource"" />
        <FunctionImport Name=""InStreamErrorGetCustomer"" Function=""Microsoft.Test.OData.Services.AstoriaDefaultService.InStreamErrorGetCustomer"" EntitySet=""Customer"" />
      </EntityContainer>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>";
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
            public static global::Microsoft.OData.Edm.IEdmModel GetInstance()
            {
                return ParsedModel;
            }
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
            private static global::Microsoft.OData.Edm.IEdmModel LoadModelFromString()
            {
                global::System.Xml.XmlReader reader = CreateXmlReader(Edmx);
                try
                {
                    return global::Microsoft.OData.Edm.Csdl.EdmxReader.Parse(reader);
                }
                finally
                {
                    ((global::System.IDisposable)(reader)).Dispose();
                }
            }
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
            private static global::System.Xml.XmlReader CreateXmlReader(string edmxToParse)
            {
                return global::System.Xml.XmlReader.Create(new global::System.IO.StringReader(edmxToParse));
            }
        }
        /// <summary>
        /// There are no comments for GetPrimitiveString in the schema.
        /// </summary>
        public global::Microsoft.OData.Client.DataServiceQuerySingle<string> GetPrimitiveString()
        {
            return this.CreateFunctionQuerySingle<string>("", "GetPrimitiveString", false);
        }
        /// <summary>
        /// There are no comments for GetSpecificCustomer in the schema.
        /// </summary>
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer> GetSpecificCustomer(string Name)
        {
            return this.CreateFunctionQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer>("", "GetSpecificCustomer", false, new global::Microsoft.OData.Client.UriOperationParameter("Name", Name));
        }
        /// <summary>
        /// There are no comments for GetCustomerCount in the schema.
        /// </summary>
        public global::Microsoft.OData.Client.DataServiceQuerySingle<int> GetCustomerCount()
        {
            return this.CreateFunctionQuerySingle<int>("", "GetCustomerCount", true);
        }
        /// <summary>
        /// There are no comments for GetArgumentPlusOne in the schema.
        /// </summary>
        public global::Microsoft.OData.Client.DataServiceQuerySingle<int> GetArgumentPlusOne(int arg1)
        {
            return this.CreateFunctionQuerySingle<int>("", "GetArgumentPlusOne", true, new global::Microsoft.OData.Client.UriOperationParameter("arg1", arg1));
        }
        /// <summary>
        /// There are no comments for EntityProjectionReturnsCollectionOfComplexTypes in the schema.
        /// </summary>
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails> EntityProjectionReturnsCollectionOfComplexTypes()
        {
            return this.CreateFunctionQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails>("", "EntityProjectionReturnsCollectionOfComplexTypes", false);
        }
        /// <summary>
        /// There are no comments for InStreamErrorGetCustomer in the schema.
        /// </summary>
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer> InStreamErrorGetCustomer()
        {
            return this.CreateFunctionQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer>("", "InStreamErrorGetCustomer", false);
        }
        /// <summary>
        /// There are no comments for ResetDataSource in the schema.
        /// </summary>
        public global::Microsoft.OData.Client.DataServiceActionQuery ResetDataSource()
        {
            return new global::Microsoft.OData.Client.DataServiceActionQuery(this, this.BaseUri.OriginalString.Trim('/') + "/ResetDataSource");
        }
    }
    /// <summary>
    /// There are no comments for AllSpatialTypesSingle in the schema.
    /// </summary>
    public partial class AllSpatialTypesSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<AllSpatialTypes>
    {
        /// <summary>
        /// Initialize a new AllSpatialTypesSingle object.
        /// </summary>
        public AllSpatialTypesSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new AllSpatialTypesSingle object.
        /// </summary>
        public AllSpatialTypesSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new AllSpatialTypesSingle object.
        /// </summary>
        public AllSpatialTypesSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<AllSpatialTypes> query)
            : base(query) {}

    }
    /// <summary>
    /// There are no comments for AllSpatialTypes in the schema.
    /// </summary>
    /// <KeyProperties>
    /// Id
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("Id")]
    public partial class AllSpatialTypes : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new AllSpatialTypes object.
        /// </summary>
        /// <param name="ID">Initial value of Id.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static AllSpatialTypes CreateAllSpatialTypes(int ID)
        {
            AllSpatialTypes allSpatialTypes = new AllSpatialTypes();
            allSpatialTypes.Id = ID;
            return allSpatialTypes;
        }
        /// <summary>
        /// There are no comments for Property Id in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int Id
        {
            get
            {
                return this._Id;
            }
            set
            {
                this.OnIdChanging(value);
                this._Id = value;
                this.OnIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _Id;
        partial void OnIdChanging(int value);
        partial void OnIdChanged();
        /// <summary>
        /// There are no comments for Property Geog in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.Geography Geog
        {
            get
            {
                return this._Geog;
            }
            set
            {
                this.OnGeogChanging(value);
                this._Geog = value;
                this.OnGeogChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.Geography _Geog;
        partial void OnGeogChanging(global::Microsoft.Spatial.Geography value);
        partial void OnGeogChanged();
        /// <summary>
        /// There are no comments for Property GeogPoint in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeographyPoint GeogPoint
        {
            get
            {
                return this._GeogPoint;
            }
            set
            {
                this.OnGeogPointChanging(value);
                this._GeogPoint = value;
                this.OnGeogPointChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeographyPoint _GeogPoint;
        partial void OnGeogPointChanging(global::Microsoft.Spatial.GeographyPoint value);
        partial void OnGeogPointChanged();
        /// <summary>
        /// There are no comments for Property GeogLine in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeographyLineString GeogLine
        {
            get
            {
                return this._GeogLine;
            }
            set
            {
                this.OnGeogLineChanging(value);
                this._GeogLine = value;
                this.OnGeogLineChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeographyLineString _GeogLine;
        partial void OnGeogLineChanging(global::Microsoft.Spatial.GeographyLineString value);
        partial void OnGeogLineChanged();
        /// <summary>
        /// There are no comments for Property GeogPolygon in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeographyPolygon GeogPolygon
        {
            get
            {
                return this._GeogPolygon;
            }
            set
            {
                this.OnGeogPolygonChanging(value);
                this._GeogPolygon = value;
                this.OnGeogPolygonChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeographyPolygon _GeogPolygon;
        partial void OnGeogPolygonChanging(global::Microsoft.Spatial.GeographyPolygon value);
        partial void OnGeogPolygonChanged();
        /// <summary>
        /// There are no comments for Property GeogCollection in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeographyCollection GeogCollection
        {
            get
            {
                return this._GeogCollection;
            }
            set
            {
                this.OnGeogCollectionChanging(value);
                this._GeogCollection = value;
                this.OnGeogCollectionChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeographyCollection _GeogCollection;
        partial void OnGeogCollectionChanging(global::Microsoft.Spatial.GeographyCollection value);
        partial void OnGeogCollectionChanged();
        /// <summary>
        /// There are no comments for Property GeogMultiPoint in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeographyMultiPoint GeogMultiPoint
        {
            get
            {
                return this._GeogMultiPoint;
            }
            set
            {
                this.OnGeogMultiPointChanging(value);
                this._GeogMultiPoint = value;
                this.OnGeogMultiPointChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeographyMultiPoint _GeogMultiPoint;
        partial void OnGeogMultiPointChanging(global::Microsoft.Spatial.GeographyMultiPoint value);
        partial void OnGeogMultiPointChanged();
        /// <summary>
        /// There are no comments for Property GeogMultiLine in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeographyMultiLineString GeogMultiLine
        {
            get
            {
                return this._GeogMultiLine;
            }
            set
            {
                this.OnGeogMultiLineChanging(value);
                this._GeogMultiLine = value;
                this.OnGeogMultiLineChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeographyMultiLineString _GeogMultiLine;
        partial void OnGeogMultiLineChanging(global::Microsoft.Spatial.GeographyMultiLineString value);
        partial void OnGeogMultiLineChanged();
        /// <summary>
        /// There are no comments for Property GeogMultiPolygon in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeographyMultiPolygon GeogMultiPolygon
        {
            get
            {
                return this._GeogMultiPolygon;
            }
            set
            {
                this.OnGeogMultiPolygonChanging(value);
                this._GeogMultiPolygon = value;
                this.OnGeogMultiPolygonChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeographyMultiPolygon _GeogMultiPolygon;
        partial void OnGeogMultiPolygonChanging(global::Microsoft.Spatial.GeographyMultiPolygon value);
        partial void OnGeogMultiPolygonChanged();
        /// <summary>
        /// There are no comments for Property Geom in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.Geometry Geom
        {
            get
            {
                return this._Geom;
            }
            set
            {
                this.OnGeomChanging(value);
                this._Geom = value;
                this.OnGeomChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.Geometry _Geom;
        partial void OnGeomChanging(global::Microsoft.Spatial.Geometry value);
        partial void OnGeomChanged();
        /// <summary>
        /// There are no comments for Property GeomPoint in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeometryPoint GeomPoint
        {
            get
            {
                return this._GeomPoint;
            }
            set
            {
                this.OnGeomPointChanging(value);
                this._GeomPoint = value;
                this.OnGeomPointChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeometryPoint _GeomPoint;
        partial void OnGeomPointChanging(global::Microsoft.Spatial.GeometryPoint value);
        partial void OnGeomPointChanged();
        /// <summary>
        /// There are no comments for Property GeomLine in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeometryLineString GeomLine
        {
            get
            {
                return this._GeomLine;
            }
            set
            {
                this.OnGeomLineChanging(value);
                this._GeomLine = value;
                this.OnGeomLineChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeometryLineString _GeomLine;
        partial void OnGeomLineChanging(global::Microsoft.Spatial.GeometryLineString value);
        partial void OnGeomLineChanged();
        /// <summary>
        /// There are no comments for Property GeomPolygon in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeometryPolygon GeomPolygon
        {
            get
            {
                return this._GeomPolygon;
            }
            set
            {
                this.OnGeomPolygonChanging(value);
                this._GeomPolygon = value;
                this.OnGeomPolygonChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeometryPolygon _GeomPolygon;
        partial void OnGeomPolygonChanging(global::Microsoft.Spatial.GeometryPolygon value);
        partial void OnGeomPolygonChanged();
        /// <summary>
        /// There are no comments for Property GeomCollection in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeometryCollection GeomCollection
        {
            get
            {
                return this._GeomCollection;
            }
            set
            {
                this.OnGeomCollectionChanging(value);
                this._GeomCollection = value;
                this.OnGeomCollectionChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeometryCollection _GeomCollection;
        partial void OnGeomCollectionChanging(global::Microsoft.Spatial.GeometryCollection value);
        partial void OnGeomCollectionChanged();
        /// <summary>
        /// There are no comments for Property GeomMultiPoint in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeometryMultiPoint GeomMultiPoint
        {
            get
            {
                return this._GeomMultiPoint;
            }
            set
            {
                this.OnGeomMultiPointChanging(value);
                this._GeomMultiPoint = value;
                this.OnGeomMultiPointChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeometryMultiPoint _GeomMultiPoint;
        partial void OnGeomMultiPointChanging(global::Microsoft.Spatial.GeometryMultiPoint value);
        partial void OnGeomMultiPointChanged();
        /// <summary>
        /// There are no comments for Property GeomMultiLine in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeometryMultiLineString GeomMultiLine
        {
            get
            {
                return this._GeomMultiLine;
            }
            set
            {
                this.OnGeomMultiLineChanging(value);
                this._GeomMultiLine = value;
                this.OnGeomMultiLineChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeometryMultiLineString _GeomMultiLine;
        partial void OnGeomMultiLineChanging(global::Microsoft.Spatial.GeometryMultiLineString value);
        partial void OnGeomMultiLineChanged();
        /// <summary>
        /// There are no comments for Property GeomMultiPolygon in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeometryMultiPolygon GeomMultiPolygon
        {
            get
            {
                return this._GeomMultiPolygon;
            }
            set
            {
                this.OnGeomMultiPolygonChanging(value);
                this._GeomMultiPolygon = value;
                this.OnGeomMultiPolygonChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeometryMultiPolygon _GeomMultiPolygon;
        partial void OnGeomMultiPolygonChanging(global::Microsoft.Spatial.GeometryMultiPolygon value);
        partial void OnGeomMultiPolygonChanged();
    }
    /// <summary>
    /// There are no comments for AllSpatialCollectionTypesSingle in the schema.
    /// </summary>
    public partial class AllSpatialCollectionTypesSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<AllSpatialCollectionTypes>
    {
        /// <summary>
        /// Initialize a new AllSpatialCollectionTypesSingle object.
        /// </summary>
        public AllSpatialCollectionTypesSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new AllSpatialCollectionTypesSingle object.
        /// </summary>
        public AllSpatialCollectionTypesSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new AllSpatialCollectionTypesSingle object.
        /// </summary>
        public AllSpatialCollectionTypesSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<AllSpatialCollectionTypes> query)
            : base(query) {}

    }
    /// <summary>
    /// There are no comments for AllSpatialCollectionTypes in the schema.
    /// </summary>
    /// <KeyProperties>
    /// Id
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("Id")]
    public abstract partial class AllSpatialCollectionTypes : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// There are no comments for Property Id in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int Id
        {
            get
            {
                return this._Id;
            }
            set
            {
                this.OnIdChanging(value);
                this._Id = value;
                this.OnIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _Id;
        partial void OnIdChanging(int value);
        partial void OnIdChanged();
    }
    /// <summary>
    /// There are no comments for CustomerSingle in the schema.
    /// </summary>
    public partial class CustomerSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<Customer>
    {
        /// <summary>
        /// Initialize a new CustomerSingle object.
        /// </summary>
        public CustomerSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new CustomerSingle object.
        /// </summary>
        public CustomerSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new CustomerSingle object.
        /// </summary>
        public CustomerSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<Customer> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Orders in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> Orders
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Orders == null))
                {
                    this._Orders = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order>(GetPath("Orders"));
                }
                return this._Orders;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> _Orders;
        /// <summary>
        /// There are no comments for Logins in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login> Logins
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Logins == null))
                {
                    this._Logins = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login>(GetPath("Logins"));
                }
                return this._Logins;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login> _Logins;
        /// <summary>
        /// There are no comments for Husband in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle Husband
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Husband == null))
                {
                    this._Husband = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle(this.Context, GetPath("Husband"));
                }
                return this._Husband;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle _Husband;
        /// <summary>
        /// There are no comments for Wife in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle Wife
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Wife == null))
                {
                    this._Wife = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle(this.Context, GetPath("Wife"));
                }
                return this._Wife;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle _Wife;
        /// <summary>
        /// There are no comments for Info in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfoSingle Info
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Info == null))
                {
                    this._Info = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfoSingle(this.Context, GetPath("Info"));
                }
                return this._Info;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfoSingle _Info;
    }
    /// <summary>
    /// There are no comments for Customer in the schema.
    /// </summary>
    /// <KeyProperties>
    /// CustomerId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("CustomerId")]
    public partial class Customer : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new Customer object.
        /// </summary>
        /// <param name="thumbnail">Initial value of Thumbnail.</param>
        /// <param name="video">Initial value of Video.</param>
        /// <param name="customerId">Initial value of CustomerId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Customer CreateCustomer(global::Microsoft.OData.Client.DataServiceStreamLink thumbnail, global::Microsoft.OData.Client.DataServiceStreamLink video, int customerId)
        {
            Customer customer = new Customer();
            customer.Thumbnail = thumbnail;
            customer.Video = video;
            customer.CustomerId = customerId;
            return customer;
        }
        /// <summary>
        /// There are no comments for Property Thumbnail in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceStreamLink Thumbnail
        {
            get
            {
                return this._Thumbnail;
            }
            set
            {
                this.OnThumbnailChanging(value);
                this._Thumbnail = value;
                this.OnThumbnailChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceStreamLink _Thumbnail;
        partial void OnThumbnailChanging(global::Microsoft.OData.Client.DataServiceStreamLink value);
        partial void OnThumbnailChanged();
        /// <summary>
        /// There are no comments for Property Video in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceStreamLink Video
        {
            get
            {
                return this._Video;
            }
            set
            {
                this.OnVideoChanging(value);
                this._Video = value;
                this.OnVideoChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceStreamLink _Video;
        partial void OnVideoChanging(global::Microsoft.OData.Client.DataServiceStreamLink value);
        partial void OnVideoChanged();
        /// <summary>
        /// There are no comments for Property CustomerId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int CustomerId
        {
            get
            {
                return this._CustomerId;
            }
            set
            {
                this.OnCustomerIdChanging(value);
                this._CustomerId = value;
                this.OnCustomerIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _CustomerId;
        partial void OnCustomerIdChanging(int value);
        partial void OnCustomerIdChanged();
        /// <summary>
        /// There are no comments for Property Name in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Name
        {
            get
            {
                return this._Name;
            }
            set
            {
                this.OnNameChanging(value);
                this._Name = value;
                this.OnNameChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Name;
        partial void OnNameChanging(string value);
        partial void OnNameChanged();
        /// <summary>
        /// There are no comments for Property PrimaryContactInfo in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails PrimaryContactInfo
        {
            get
            {
                return this._PrimaryContactInfo;
            }
            set
            {
                this.OnPrimaryContactInfoChanging(value);
                this._PrimaryContactInfo = value;
                this.OnPrimaryContactInfoChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails _PrimaryContactInfo;
        partial void OnPrimaryContactInfoChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails value);
        partial void OnPrimaryContactInfoChanged();
        /// <summary>
        /// There are no comments for Property BackupContactInfo in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails> BackupContactInfo
        {
            get
            {
                return this._BackupContactInfo;
            }
            set
            {
                this.OnBackupContactInfoChanging(value);
                this._BackupContactInfo = value;
                this.OnBackupContactInfoChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails> _BackupContactInfo = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails>();
        partial void OnBackupContactInfoChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails> value);
        partial void OnBackupContactInfoChanged();
        /// <summary>
        /// There are no comments for Property Auditing in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AuditInfo Auditing
        {
            get
            {
                return this._Auditing;
            }
            set
            {
                this.OnAuditingChanging(value);
                this._Auditing = value;
                this.OnAuditingChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AuditInfo _Auditing;
        partial void OnAuditingChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AuditInfo value);
        partial void OnAuditingChanged();
        /// <summary>
        /// There are no comments for Property Orders in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> Orders
        {
            get
            {
                return this._Orders;
            }
            set
            {
                this.OnOrdersChanging(value);
                this._Orders = value;
                this.OnOrdersChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> _Orders = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order>();
        partial void OnOrdersChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> value);
        partial void OnOrdersChanged();
        /// <summary>
        /// There are no comments for Property Logins in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login> Logins
        {
            get
            {
                return this._Logins;
            }
            set
            {
                this.OnLoginsChanging(value);
                this._Logins = value;
                this.OnLoginsChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login> _Logins = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login>();
        partial void OnLoginsChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login> value);
        partial void OnLoginsChanged();
        /// <summary>
        /// There are no comments for Property Husband in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer Husband
        {
            get
            {
                return this._Husband;
            }
            set
            {
                this.OnHusbandChanging(value);
                this._Husband = value;
                this.OnHusbandChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer _Husband;
        partial void OnHusbandChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer value);
        partial void OnHusbandChanged();
        /// <summary>
        /// There are no comments for Property Wife in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer Wife
        {
            get
            {
                return this._Wife;
            }
            set
            {
                this.OnWifeChanging(value);
                this._Wife = value;
                this.OnWifeChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer _Wife;
        partial void OnWifeChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer value);
        partial void OnWifeChanged();
        /// <summary>
        /// There are no comments for Property Info in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfo Info
        {
            get
            {
                return this._Info;
            }
            set
            {
                this.OnInfoChanging(value);
                this._Info = value;
                this.OnInfoChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfo _Info;
        partial void OnInfoChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfo value);
        partial void OnInfoChanged();
        /// <summary>
        /// There are no comments for ChangeCustomerAuditInfo in the schema.
        /// </summary>
        public global::Microsoft.OData.Client.DataServiceActionQuery ChangeCustomerAuditInfo(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AuditInfo auditInfo)
        {
            global::Microsoft.OData.Client.EntityDescriptor resource = Context.EntityTracker.TryGetEntityDescriptor(this);
            if (resource == null)
            {
                throw new global::System.Exception("cannot find entity");
            }

            return new global::Microsoft.OData.Client.DataServiceActionQuery(this.Context, resource.EditLink.OriginalString.Trim('/') + "/Microsoft.Test.OData.Services.AstoriaDefaultService.ChangeCustomerAuditInfo", new global::Microsoft.OData.Client.BodyOperationParameter("auditInfo", auditInfo));
        }
    }
    /// <summary>
    /// There are no comments for LoginSingle in the schema.
    /// </summary>
    public partial class LoginSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<Login>
    {
        /// <summary>
        /// Initialize a new LoginSingle object.
        /// </summary>
        public LoginSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new LoginSingle object.
        /// </summary>
        public LoginSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new LoginSingle object.
        /// </summary>
        public LoginSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<Login> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Customer in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle Customer
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Customer == null))
                {
                    this._Customer = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle(this.Context, GetPath("Customer"));
                }
                return this._Customer;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle _Customer;
        /// <summary>
        /// There are no comments for LastLogin in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLoginSingle LastLogin
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._LastLogin == null))
                {
                    this._LastLogin = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLoginSingle(this.Context, GetPath("LastLogin"));
                }
                return this._LastLogin;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLoginSingle _LastLogin;
        /// <summary>
        /// There are no comments for SentMessages in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> SentMessages
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._SentMessages == null))
                {
                    this._SentMessages = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message>(GetPath("SentMessages"));
                }
                return this._SentMessages;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> _SentMessages;
        /// <summary>
        /// There are no comments for ReceivedMessages in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> ReceivedMessages
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._ReceivedMessages == null))
                {
                    this._ReceivedMessages = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message>(GetPath("ReceivedMessages"));
                }
                return this._ReceivedMessages;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> _ReceivedMessages;
        /// <summary>
        /// There are no comments for Orders in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> Orders
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Orders == null))
                {
                    this._Orders = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order>(GetPath("Orders"));
                }
                return this._Orders;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> _Orders;
    }
    /// <summary>
    /// There are no comments for Login in the schema.
    /// </summary>
    /// <KeyProperties>
    /// Username
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("Username")]
    public partial class Login : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new Login object.
        /// </summary>
        /// <param name="username">Initial value of Username.</param>
        /// <param name="customerId">Initial value of CustomerId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Login CreateLogin(string username, int customerId)
        {
            Login login = new Login();
            login.Username = username;
            login.CustomerId = customerId;
            return login;
        }
        /// <summary>
        /// There are no comments for Property Username in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Username
        {
            get
            {
                return this._Username;
            }
            set
            {
                this.OnUsernameChanging(value);
                this._Username = value;
                this.OnUsernameChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Username;
        partial void OnUsernameChanging(string value);
        partial void OnUsernameChanged();
        /// <summary>
        /// There are no comments for Property CustomerId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int CustomerId
        {
            get
            {
                return this._CustomerId;
            }
            set
            {
                this.OnCustomerIdChanging(value);
                this._CustomerId = value;
                this.OnCustomerIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _CustomerId;
        partial void OnCustomerIdChanging(int value);
        partial void OnCustomerIdChanged();
        /// <summary>
        /// There are no comments for Property Customer in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer Customer
        {
            get
            {
                return this._Customer;
            }
            set
            {
                this.OnCustomerChanging(value);
                this._Customer = value;
                this.OnCustomerChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer _Customer;
        partial void OnCustomerChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer value);
        partial void OnCustomerChanged();
        /// <summary>
        /// There are no comments for Property LastLogin in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLogin LastLogin
        {
            get
            {
                return this._LastLogin;
            }
            set
            {
                this.OnLastLoginChanging(value);
                this._LastLogin = value;
                this.OnLastLoginChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLogin _LastLogin;
        partial void OnLastLoginChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLogin value);
        partial void OnLastLoginChanged();
        /// <summary>
        /// There are no comments for Property SentMessages in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> SentMessages
        {
            get
            {
                return this._SentMessages;
            }
            set
            {
                this.OnSentMessagesChanging(value);
                this._SentMessages = value;
                this.OnSentMessagesChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> _SentMessages = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message>();
        partial void OnSentMessagesChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> value);
        partial void OnSentMessagesChanged();
        /// <summary>
        /// There are no comments for Property ReceivedMessages in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> ReceivedMessages
        {
            get
            {
                return this._ReceivedMessages;
            }
            set
            {
                this.OnReceivedMessagesChanging(value);
                this._ReceivedMessages = value;
                this.OnReceivedMessagesChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> _ReceivedMessages = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message>();
        partial void OnReceivedMessagesChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> value);
        partial void OnReceivedMessagesChanged();
        /// <summary>
        /// There are no comments for Property Orders in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> Orders
        {
            get
            {
                return this._Orders;
            }
            set
            {
                this.OnOrdersChanging(value);
                this._Orders = value;
                this.OnOrdersChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> _Orders = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order>();
        partial void OnOrdersChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> value);
        partial void OnOrdersChanged();
    }
    /// <summary>
    /// There are no comments for RSATokenSingle in the schema.
    /// </summary>
    public partial class RSATokenSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<RSAToken>
    {
        /// <summary>
        /// Initialize a new RSATokenSingle object.
        /// </summary>
        public RSATokenSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new RSATokenSingle object.
        /// </summary>
        public RSATokenSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new RSATokenSingle object.
        /// </summary>
        public RSATokenSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<RSAToken> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Login in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle Login
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Login == null))
                {
                    this._Login = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle(this.Context, GetPath("Login"));
                }
                return this._Login;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle _Login;
    }
    /// <summary>
    /// There are no comments for RSAToken in the schema.
    /// </summary>
    /// <KeyProperties>
    /// Serial
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("Serial")]
    public partial class RSAToken : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new RSAToken object.
        /// </summary>
        /// <param name="serial">Initial value of Serial.</param>
        /// <param name="issued">Initial value of Issued.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static RSAToken CreateRSAToken(string serial, global::System.DateTimeOffset issued)
        {
            RSAToken rSAToken = new RSAToken();
            rSAToken.Serial = serial;
            rSAToken.Issued = issued;
            return rSAToken;
        }
        /// <summary>
        /// There are no comments for Property Serial in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Serial
        {
            get
            {
                return this._Serial;
            }
            set
            {
                this.OnSerialChanging(value);
                this._Serial = value;
                this.OnSerialChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Serial;
        partial void OnSerialChanging(string value);
        partial void OnSerialChanged();
        /// <summary>
        /// There are no comments for Property Issued in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.DateTimeOffset Issued
        {
            get
            {
                return this._Issued;
            }
            set
            {
                this.OnIssuedChanging(value);
                this._Issued = value;
                this.OnIssuedChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.DateTimeOffset _Issued;
        partial void OnIssuedChanging(global::System.DateTimeOffset value);
        partial void OnIssuedChanged();
        /// <summary>
        /// There are no comments for Property Login in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login Login
        {
            get
            {
                return this._Login;
            }
            set
            {
                this.OnLoginChanging(value);
                this._Login = value;
                this.OnLoginChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login _Login;
        partial void OnLoginChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login value);
        partial void OnLoginChanged();
    }
    /// <summary>
    /// There are no comments for PageViewSingle in the schema.
    /// </summary>
    public partial class PageViewSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<PageView>
    {
        /// <summary>
        /// Initialize a new PageViewSingle object.
        /// </summary>
        public PageViewSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new PageViewSingle object.
        /// </summary>
        public PageViewSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new PageViewSingle object.
        /// </summary>
        public PageViewSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<PageView> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Login in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle Login
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Login == null))
                {
                    this._Login = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle(this.Context, GetPath("Login"));
                }
                return this._Login;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle _Login;
    }
    /// <summary>
    /// There are no comments for PageView in the schema.
    /// </summary>
    /// <KeyProperties>
    /// PageViewId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("PageViewId")]
    public partial class PageView : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new PageView object.
        /// </summary>
        /// <param name="pageViewId">Initial value of PageViewId.</param>
        /// <param name="viewed">Initial value of Viewed.</param>
        /// <param name="timeSpentOnPage">Initial value of TimeSpentOnPage.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static PageView CreatePageView(int pageViewId, global::System.DateTimeOffset viewed, global::System.TimeSpan timeSpentOnPage)
        {
            PageView pageView = new PageView();
            pageView.PageViewId = pageViewId;
            pageView.Viewed = viewed;
            pageView.TimeSpentOnPage = timeSpentOnPage;
            return pageView;
        }
        /// <summary>
        /// There are no comments for Property PageViewId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int PageViewId
        {
            get
            {
                return this._PageViewId;
            }
            set
            {
                this.OnPageViewIdChanging(value);
                this._PageViewId = value;
                this.OnPageViewIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _PageViewId;
        partial void OnPageViewIdChanging(int value);
        partial void OnPageViewIdChanged();
        /// <summary>
        /// There are no comments for Property Username in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Username
        {
            get
            {
                return this._Username;
            }
            set
            {
                this.OnUsernameChanging(value);
                this._Username = value;
                this.OnUsernameChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Username;
        partial void OnUsernameChanging(string value);
        partial void OnUsernameChanged();
        /// <summary>
        /// There are no comments for Property Viewed in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.DateTimeOffset Viewed
        {
            get
            {
                return this._Viewed;
            }
            set
            {
                this.OnViewedChanging(value);
                this._Viewed = value;
                this.OnViewedChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.DateTimeOffset _Viewed;
        partial void OnViewedChanging(global::System.DateTimeOffset value);
        partial void OnViewedChanged();
        /// <summary>
        /// There are no comments for Property TimeSpentOnPage in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.TimeSpan TimeSpentOnPage
        {
            get
            {
                return this._TimeSpentOnPage;
            }
            set
            {
                this.OnTimeSpentOnPageChanging(value);
                this._TimeSpentOnPage = value;
                this.OnTimeSpentOnPageChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.TimeSpan _TimeSpentOnPage;
        partial void OnTimeSpentOnPageChanging(global::System.TimeSpan value);
        partial void OnTimeSpentOnPageChanged();
        /// <summary>
        /// There are no comments for Property PageUrl in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string PageUrl
        {
            get
            {
                return this._PageUrl;
            }
            set
            {
                this.OnPageUrlChanging(value);
                this._PageUrl = value;
                this.OnPageUrlChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _PageUrl;
        partial void OnPageUrlChanging(string value);
        partial void OnPageUrlChanged();
        /// <summary>
        /// There are no comments for Property Login in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login Login
        {
            get
            {
                return this._Login;
            }
            set
            {
                this.OnLoginChanging(value);
                this._Login = value;
                this.OnLoginChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login _Login;
        partial void OnLoginChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login value);
        partial void OnLoginChanged();
    }
    /// <summary>
    /// There are no comments for LastLoginSingle in the schema.
    /// </summary>
    public partial class LastLoginSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<LastLogin>
    {
        /// <summary>
        /// Initialize a new LastLoginSingle object.
        /// </summary>
        public LastLoginSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new LastLoginSingle object.
        /// </summary>
        public LastLoginSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new LastLoginSingle object.
        /// </summary>
        public LastLoginSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<LastLogin> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Login in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle Login
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Login == null))
                {
                    this._Login = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle(this.Context, GetPath("Login"));
                }
                return this._Login;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle _Login;
    }
    /// <summary>
    /// There are no comments for LastLogin in the schema.
    /// </summary>
    /// <KeyProperties>
    /// Username
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("Username")]
    public partial class LastLogin : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new LastLogin object.
        /// </summary>
        /// <param name="username">Initial value of Username.</param>
        /// <param name="loggedIn">Initial value of LoggedIn.</param>
        /// <param name="duration">Initial value of Duration.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static LastLogin CreateLastLogin(string username, global::System.DateTimeOffset loggedIn, global::System.TimeSpan duration)
        {
            LastLogin lastLogin = new LastLogin();
            lastLogin.Username = username;
            lastLogin.LoggedIn = loggedIn;
            lastLogin.Duration = duration;
            return lastLogin;
        }
        /// <summary>
        /// There are no comments for Property Username in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Username
        {
            get
            {
                return this._Username;
            }
            set
            {
                this.OnUsernameChanging(value);
                this._Username = value;
                this.OnUsernameChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Username;
        partial void OnUsernameChanging(string value);
        partial void OnUsernameChanged();
        /// <summary>
        /// There are no comments for Property LoggedIn in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.DateTimeOffset LoggedIn
        {
            get
            {
                return this._LoggedIn;
            }
            set
            {
                this.OnLoggedInChanging(value);
                this._LoggedIn = value;
                this.OnLoggedInChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.DateTimeOffset _LoggedIn;
        partial void OnLoggedInChanging(global::System.DateTimeOffset value);
        partial void OnLoggedInChanged();
        /// <summary>
        /// There are no comments for Property LoggedOut in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Nullable<global::System.DateTimeOffset> LoggedOut
        {
            get
            {
                return this._LoggedOut;
            }
            set
            {
                this.OnLoggedOutChanging(value);
                this._LoggedOut = value;
                this.OnLoggedOutChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Nullable<global::System.DateTimeOffset> _LoggedOut;
        partial void OnLoggedOutChanging(global::System.Nullable<global::System.DateTimeOffset> value);
        partial void OnLoggedOutChanged();
        /// <summary>
        /// There are no comments for Property Duration in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.TimeSpan Duration
        {
            get
            {
                return this._Duration;
            }
            set
            {
                this.OnDurationChanging(value);
                this._Duration = value;
                this.OnDurationChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.TimeSpan _Duration;
        partial void OnDurationChanging(global::System.TimeSpan value);
        partial void OnDurationChanged();
        /// <summary>
        /// There are no comments for Property Login in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login Login
        {
            get
            {
                return this._Login;
            }
            set
            {
                this.OnLoginChanging(value);
                this._Login = value;
                this.OnLoginChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login _Login;
        partial void OnLoginChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login value);
        partial void OnLoginChanged();
    }
    /// <summary>
    /// There are no comments for MessageSingle in the schema.
    /// </summary>
    public partial class MessageSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<Message>
    {
        /// <summary>
        /// Initialize a new MessageSingle object.
        /// </summary>
        public MessageSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new MessageSingle object.
        /// </summary>
        public MessageSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new MessageSingle object.
        /// </summary>
        public MessageSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<Message> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Sender in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle Sender
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Sender == null))
                {
                    this._Sender = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle(this.Context, GetPath("Sender"));
                }
                return this._Sender;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle _Sender;
        /// <summary>
        /// There are no comments for Recipient in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle Recipient
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Recipient == null))
                {
                    this._Recipient = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle(this.Context, GetPath("Recipient"));
                }
                return this._Recipient;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle _Recipient;
        /// <summary>
        /// There are no comments for Attachments in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachment> Attachments
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Attachments == null))
                {
                    this._Attachments = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachment>(GetPath("Attachments"));
                }
                return this._Attachments;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachment> _Attachments;
    }
    /// <summary>
    /// There are no comments for Message in the schema.
    /// </summary>
    /// <KeyProperties>
    /// FromUsername
    /// MessageId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("FromUsername", "MessageId")]
    public partial class Message : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new Message object.
        /// </summary>
        /// <param name="messageId">Initial value of MessageId.</param>
        /// <param name="fromUsername">Initial value of FromUsername.</param>
        /// <param name="sent">Initial value of Sent.</param>
        /// <param name="isRead">Initial value of IsRead.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Message CreateMessage(int messageId, string fromUsername, global::System.DateTimeOffset sent, bool isRead)
        {
            Message message = new Message();
            message.MessageId = messageId;
            message.FromUsername = fromUsername;
            message.Sent = sent;
            message.IsRead = isRead;
            return message;
        }
        /// <summary>
        /// There are no comments for Property MessageId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int MessageId
        {
            get
            {
                return this._MessageId;
            }
            set
            {
                this.OnMessageIdChanging(value);
                this._MessageId = value;
                this.OnMessageIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _MessageId;
        partial void OnMessageIdChanging(int value);
        partial void OnMessageIdChanged();
        /// <summary>
        /// There are no comments for Property FromUsername in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string FromUsername
        {
            get
            {
                return this._FromUsername;
            }
            set
            {
                this.OnFromUsernameChanging(value);
                this._FromUsername = value;
                this.OnFromUsernameChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _FromUsername;
        partial void OnFromUsernameChanging(string value);
        partial void OnFromUsernameChanged();
        /// <summary>
        /// There are no comments for Property ToUsername in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string ToUsername
        {
            get
            {
                return this._ToUsername;
            }
            set
            {
                this.OnToUsernameChanging(value);
                this._ToUsername = value;
                this.OnToUsernameChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _ToUsername;
        partial void OnToUsernameChanging(string value);
        partial void OnToUsernameChanged();
        /// <summary>
        /// There are no comments for Property Sent in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.DateTimeOffset Sent
        {
            get
            {
                return this._Sent;
            }
            set
            {
                this.OnSentChanging(value);
                this._Sent = value;
                this.OnSentChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.DateTimeOffset _Sent;
        partial void OnSentChanging(global::System.DateTimeOffset value);
        partial void OnSentChanged();
        /// <summary>
        /// There are no comments for Property Subject in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Subject
        {
            get
            {
                return this._Subject;
            }
            set
            {
                this.OnSubjectChanging(value);
                this._Subject = value;
                this.OnSubjectChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Subject;
        partial void OnSubjectChanging(string value);
        partial void OnSubjectChanged();
        /// <summary>
        /// There are no comments for Property Body in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Body
        {
            get
            {
                return this._Body;
            }
            set
            {
                this.OnBodyChanging(value);
                this._Body = value;
                this.OnBodyChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Body;
        partial void OnBodyChanging(string value);
        partial void OnBodyChanged();
        /// <summary>
        /// There are no comments for Property IsRead in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public bool IsRead
        {
            get
            {
                return this._IsRead;
            }
            set
            {
                this.OnIsReadChanging(value);
                this._IsRead = value;
                this.OnIsReadChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private bool _IsRead;
        partial void OnIsReadChanging(bool value);
        partial void OnIsReadChanged();
        /// <summary>
        /// There are no comments for Property Sender in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login Sender
        {
            get
            {
                return this._Sender;
            }
            set
            {
                this.OnSenderChanging(value);
                this._Sender = value;
                this.OnSenderChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login _Sender;
        partial void OnSenderChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login value);
        partial void OnSenderChanged();
        /// <summary>
        /// There are no comments for Property Recipient in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login Recipient
        {
            get
            {
                return this._Recipient;
            }
            set
            {
                this.OnRecipientChanging(value);
                this._Recipient = value;
                this.OnRecipientChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login _Recipient;
        partial void OnRecipientChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login value);
        partial void OnRecipientChanged();
        /// <summary>
        /// There are no comments for Property Attachments in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachment> Attachments
        {
            get
            {
                return this._Attachments;
            }
            set
            {
                this.OnAttachmentsChanging(value);
                this._Attachments = value;
                this.OnAttachmentsChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachment> _Attachments = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachment>();
        partial void OnAttachmentsChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachment> value);
        partial void OnAttachmentsChanged();
    }
    /// <summary>
    /// There are no comments for MessageAttachmentSingle in the schema.
    /// </summary>
    public partial class MessageAttachmentSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<MessageAttachment>
    {
        /// <summary>
        /// Initialize a new MessageAttachmentSingle object.
        /// </summary>
        public MessageAttachmentSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new MessageAttachmentSingle object.
        /// </summary>
        public MessageAttachmentSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new MessageAttachmentSingle object.
        /// </summary>
        public MessageAttachmentSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<MessageAttachment> query)
            : base(query) {}

    }
    /// <summary>
    /// There are no comments for MessageAttachment in the schema.
    /// </summary>
    /// <KeyProperties>
    /// AttachmentId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("AttachmentId")]
    public partial class MessageAttachment : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new MessageAttachment object.
        /// </summary>
        /// <param name="attachmentId">Initial value of AttachmentId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static MessageAttachment CreateMessageAttachment(global::System.Guid attachmentId)
        {
            MessageAttachment messageAttachment = new MessageAttachment();
            messageAttachment.AttachmentId = attachmentId;
            return messageAttachment;
        }
        /// <summary>
        /// There are no comments for Property AttachmentId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Guid AttachmentId
        {
            get
            {
                return this._AttachmentId;
            }
            set
            {
                this.OnAttachmentIdChanging(value);
                this._AttachmentId = value;
                this.OnAttachmentIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Guid _AttachmentId;
        partial void OnAttachmentIdChanging(global::System.Guid value);
        partial void OnAttachmentIdChanged();
        /// <summary>
        /// There are no comments for Property Attachment in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public byte[] Attachment
        {
            get
            {
                return this._Attachment;
            }
            set
            {
                this.OnAttachmentChanging(value);
                this._Attachment = value;
                this.OnAttachmentChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private byte[] _Attachment;
        partial void OnAttachmentChanging(byte[] value);
        partial void OnAttachmentChanged();
    }
    /// <summary>
    /// There are no comments for OrderSingle in the schema.
    /// </summary>
    public partial class OrderSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<Order>
    {
        /// <summary>
        /// Initialize a new OrderSingle object.
        /// </summary>
        public OrderSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new OrderSingle object.
        /// </summary>
        public OrderSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new OrderSingle object.
        /// </summary>
        public OrderSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<Order> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Login in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle Login
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Login == null))
                {
                    this._Login = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle(this.Context, GetPath("Login"));
                }
                return this._Login;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle _Login;
        /// <summary>
        /// There are no comments for Customer in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle Customer
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Customer == null))
                {
                    this._Customer = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle(this.Context, GetPath("Customer"));
                }
                return this._Customer;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle _Customer;
    }
    /// <summary>
    /// There are no comments for Order in the schema.
    /// </summary>
    /// <KeyProperties>
    /// OrderId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("OrderId")]
    public partial class Order : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new Order object.
        /// </summary>
        /// <param name="orderId">Initial value of OrderId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Order CreateOrder(int orderId)
        {
            Order order = new Order();
            order.OrderId = orderId;
            return order;
        }
        /// <summary>
        /// There are no comments for Property OrderId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int OrderId
        {
            get
            {
                return this._OrderId;
            }
            set
            {
                this.OnOrderIdChanging(value);
                this._OrderId = value;
                this.OnOrderIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _OrderId;
        partial void OnOrderIdChanging(int value);
        partial void OnOrderIdChanged();
        /// <summary>
        /// There are no comments for Property CustomerId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Nullable<int> CustomerId
        {
            get
            {
                return this._CustomerId;
            }
            set
            {
                this.OnCustomerIdChanging(value);
                this._CustomerId = value;
                this.OnCustomerIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Nullable<int> _CustomerId;
        partial void OnCustomerIdChanging(global::System.Nullable<int> value);
        partial void OnCustomerIdChanged();
        /// <summary>
        /// There are no comments for Property Concurrency in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ConcurrencyInfo Concurrency
        {
            get
            {
                return this._Concurrency;
            }
            set
            {
                this.OnConcurrencyChanging(value);
                this._Concurrency = value;
                this.OnConcurrencyChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ConcurrencyInfo _Concurrency;
        partial void OnConcurrencyChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ConcurrencyInfo value);
        partial void OnConcurrencyChanged();
        /// <summary>
        /// There are no comments for Property Login in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login Login
        {
            get
            {
                return this._Login;
            }
            set
            {
                this.OnLoginChanging(value);
                this._Login = value;
                this.OnLoginChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login _Login;
        partial void OnLoginChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login value);
        partial void OnLoginChanged();
        /// <summary>
        /// There are no comments for Property Customer in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer Customer
        {
            get
            {
                return this._Customer;
            }
            set
            {
                this.OnCustomerChanging(value);
                this._Customer = value;
                this.OnCustomerChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer _Customer;
        partial void OnCustomerChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer value);
        partial void OnCustomerChanged();
    }
    /// <summary>
    /// There are no comments for OrderLineSingle in the schema.
    /// </summary>
    public partial class OrderLineSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<OrderLine>
    {
        /// <summary>
        /// Initialize a new OrderLineSingle object.
        /// </summary>
        public OrderLineSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new OrderLineSingle object.
        /// </summary>
        public OrderLineSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new OrderLineSingle object.
        /// </summary>
        public OrderLineSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<OrderLine> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Order in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle Order
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Order == null))
                {
                    this._Order = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle(this.Context, GetPath("Order"));
                }
                return this._Order;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle _Order;
        /// <summary>
        /// There are no comments for Product in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle Product
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Product == null))
                {
                    this._Product = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle(this.Context, GetPath("Product"));
                }
                return this._Product;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle _Product;
    }
    /// <summary>
    /// There are no comments for OrderLine in the schema.
    /// </summary>
    /// <KeyProperties>
    /// OrderId
    /// ProductId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("OrderId", "ProductId")]
    public partial class OrderLine : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new OrderLine object.
        /// </summary>
        /// <param name="orderLineStream">Initial value of OrderLineStream.</param>
        /// <param name="orderId">Initial value of OrderId.</param>
        /// <param name="productId">Initial value of ProductId.</param>
        /// <param name="quantity">Initial value of Quantity.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static OrderLine CreateOrderLine(global::Microsoft.OData.Client.DataServiceStreamLink orderLineStream, int orderId, int productId, int quantity)
        {
            OrderLine orderLine = new OrderLine();
            orderLine.OrderLineStream = orderLineStream;
            orderLine.OrderId = orderId;
            orderLine.ProductId = productId;
            orderLine.Quantity = quantity;
            return orderLine;
        }
        /// <summary>
        /// There are no comments for Property OrderLineStream in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceStreamLink OrderLineStream
        {
            get
            {
                return this._OrderLineStream;
            }
            set
            {
                this.OnOrderLineStreamChanging(value);
                this._OrderLineStream = value;
                this.OnOrderLineStreamChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceStreamLink _OrderLineStream;
        partial void OnOrderLineStreamChanging(global::Microsoft.OData.Client.DataServiceStreamLink value);
        partial void OnOrderLineStreamChanged();
        /// <summary>
        /// There are no comments for Property OrderId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int OrderId
        {
            get
            {
                return this._OrderId;
            }
            set
            {
                this.OnOrderIdChanging(value);
                this._OrderId = value;
                this.OnOrderIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _OrderId;
        partial void OnOrderIdChanging(int value);
        partial void OnOrderIdChanged();
        /// <summary>
        /// There are no comments for Property ProductId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int ProductId
        {
            get
            {
                return this._ProductId;
            }
            set
            {
                this.OnProductIdChanging(value);
                this._ProductId = value;
                this.OnProductIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _ProductId;
        partial void OnProductIdChanging(int value);
        partial void OnProductIdChanged();
        /// <summary>
        /// There are no comments for Property Quantity in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int Quantity
        {
            get
            {
                return this._Quantity;
            }
            set
            {
                this.OnQuantityChanging(value);
                this._Quantity = value;
                this.OnQuantityChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _Quantity;
        partial void OnQuantityChanging(int value);
        partial void OnQuantityChanged();
        /// <summary>
        /// There are no comments for Property ConcurrencyToken in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string ConcurrencyToken
        {
            get
            {
                return this._ConcurrencyToken;
            }
            set
            {
                this.OnConcurrencyTokenChanging(value);
                this._ConcurrencyToken = value;
                this.OnConcurrencyTokenChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _ConcurrencyToken;
        partial void OnConcurrencyTokenChanging(string value);
        partial void OnConcurrencyTokenChanged();
        /// <summary>
        /// There are no comments for Property Order in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order Order
        {
            get
            {
                return this._Order;
            }
            set
            {
                this.OnOrderChanging(value);
                this._Order = value;
                this.OnOrderChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order _Order;
        partial void OnOrderChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order value);
        partial void OnOrderChanged();
        /// <summary>
        /// There are no comments for Property Product in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product Product
        {
            get
            {
                return this._Product;
            }
            set
            {
                this.OnProductChanging(value);
                this._Product = value;
                this.OnProductChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product _Product;
        partial void OnProductChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product value);
        partial void OnProductChanged();
    }
    /// <summary>
    /// There are no comments for ProductSingle in the schema.
    /// </summary>
    public partial class ProductSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<Product>
    {
        /// <summary>
        /// Initialize a new ProductSingle object.
        /// </summary>
        public ProductSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new ProductSingle object.
        /// </summary>
        public ProductSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new ProductSingle object.
        /// </summary>
        public ProductSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<Product> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for RelatedProducts in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product> RelatedProducts
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._RelatedProducts == null))
                {
                    this._RelatedProducts = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product>(GetPath("RelatedProducts"));
                }
                return this._RelatedProducts;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product> _RelatedProducts;
        /// <summary>
        /// There are no comments for Detail in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle Detail
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Detail == null))
                {
                    this._Detail = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle(this.Context, GetPath("Detail"));
                }
                return this._Detail;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle _Detail;
        /// <summary>
        /// There are no comments for Reviews in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview> Reviews
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Reviews == null))
                {
                    this._Reviews = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview>(GetPath("Reviews"));
                }
                return this._Reviews;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview> _Reviews;
        /// <summary>
        /// There are no comments for Photos in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto> Photos
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Photos == null))
                {
                    this._Photos = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto>(GetPath("Photos"));
                }
                return this._Photos;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto> _Photos;
    }
    /// <summary>
    /// There are no comments for Product in the schema.
    /// </summary>
    /// <KeyProperties>
    /// ProductId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("ProductId")]
    public partial class Product : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new Product object.
        /// </summary>
        /// <param name="picture">Initial value of Picture.</param>
        /// <param name="productId">Initial value of ProductId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Product CreateProduct(global::Microsoft.OData.Client.DataServiceStreamLink picture, int productId)
        {
            Product product = new Product();
            product.Picture = picture;
            product.ProductId = productId;
            return product;
        }
        /// <summary>
        /// There are no comments for Property Picture in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceStreamLink Picture
        {
            get
            {
                return this._Picture;
            }
            set
            {
                this.OnPictureChanging(value);
                this._Picture = value;
                this.OnPictureChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceStreamLink _Picture;
        partial void OnPictureChanging(global::Microsoft.OData.Client.DataServiceStreamLink value);
        partial void OnPictureChanged();
        /// <summary>
        /// There are no comments for Property ProductId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int ProductId
        {
            get
            {
                return this._ProductId;
            }
            set
            {
                this.OnProductIdChanging(value);
                this._ProductId = value;
                this.OnProductIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _ProductId;
        partial void OnProductIdChanging(int value);
        partial void OnProductIdChanged();
        /// <summary>
        /// There are no comments for Property Description in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Description
        {
            get
            {
                return this._Description;
            }
            set
            {
                this.OnDescriptionChanging(value);
                this._Description = value;
                this.OnDescriptionChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Description;
        partial void OnDescriptionChanging(string value);
        partial void OnDescriptionChanged();
        /// <summary>
        /// There are no comments for Property Dimensions in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Dimensions Dimensions
        {
            get
            {
                return this._Dimensions;
            }
            set
            {
                this.OnDimensionsChanging(value);
                this._Dimensions = value;
                this.OnDimensionsChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Dimensions _Dimensions;
        partial void OnDimensionsChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Dimensions value);
        partial void OnDimensionsChanged();
        /// <summary>
        /// There are no comments for Property BaseConcurrency in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string BaseConcurrency
        {
            get
            {
                return this._BaseConcurrency;
            }
            set
            {
                this.OnBaseConcurrencyChanging(value);
                this._BaseConcurrency = value;
                this.OnBaseConcurrencyChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _BaseConcurrency;
        partial void OnBaseConcurrencyChanging(string value);
        partial void OnBaseConcurrencyChanged();
        /// <summary>
        /// There are no comments for Property ComplexConcurrency in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ConcurrencyInfo ComplexConcurrency
        {
            get
            {
                return this._ComplexConcurrency;
            }
            set
            {
                this.OnComplexConcurrencyChanging(value);
                this._ComplexConcurrency = value;
                this.OnComplexConcurrencyChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ConcurrencyInfo _ComplexConcurrency;
        partial void OnComplexConcurrencyChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ConcurrencyInfo value);
        partial void OnComplexConcurrencyChanged();
        /// <summary>
        /// There are no comments for Property NestedComplexConcurrency in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AuditInfo NestedComplexConcurrency
        {
            get
            {
                return this._NestedComplexConcurrency;
            }
            set
            {
                this.OnNestedComplexConcurrencyChanging(value);
                this._NestedComplexConcurrency = value;
                this.OnNestedComplexConcurrencyChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AuditInfo _NestedComplexConcurrency;
        partial void OnNestedComplexConcurrencyChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AuditInfo value);
        partial void OnNestedComplexConcurrencyChanged();
        /// <summary>
        /// There are no comments for Property RelatedProducts in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product> RelatedProducts
        {
            get
            {
                return this._RelatedProducts;
            }
            set
            {
                this.OnRelatedProductsChanging(value);
                this._RelatedProducts = value;
                this.OnRelatedProductsChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product> _RelatedProducts = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product>();
        partial void OnRelatedProductsChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product> value);
        partial void OnRelatedProductsChanged();
        /// <summary>
        /// There are no comments for Property Detail in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetail Detail
        {
            get
            {
                return this._Detail;
            }
            set
            {
                this.OnDetailChanging(value);
                this._Detail = value;
                this.OnDetailChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetail _Detail;
        partial void OnDetailChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetail value);
        partial void OnDetailChanged();
        /// <summary>
        /// There are no comments for Property Reviews in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview> Reviews
        {
            get
            {
                return this._Reviews;
            }
            set
            {
                this.OnReviewsChanging(value);
                this._Reviews = value;
                this.OnReviewsChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview> _Reviews = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview>();
        partial void OnReviewsChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview> value);
        partial void OnReviewsChanged();
        /// <summary>
        /// There are no comments for Property Photos in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto> Photos
        {
            get
            {
                return this._Photos;
            }
            set
            {
                this.OnPhotosChanging(value);
                this._Photos = value;
                this.OnPhotosChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto> _Photos = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto>();
        partial void OnPhotosChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto> value);
        partial void OnPhotosChanged();
    }
    /// <summary>
    /// There are no comments for ProductDetailSingle in the schema.
    /// </summary>
    public partial class ProductDetailSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<ProductDetail>
    {
        /// <summary>
        /// Initialize a new ProductDetailSingle object.
        /// </summary>
        public ProductDetailSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new ProductDetailSingle object.
        /// </summary>
        public ProductDetailSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new ProductDetailSingle object.
        /// </summary>
        public ProductDetailSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<ProductDetail> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Product in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle Product
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Product == null))
                {
                    this._Product = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle(this.Context, GetPath("Product"));
                }
                return this._Product;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle _Product;
    }
    /// <summary>
    /// There are no comments for ProductDetail in the schema.
    /// </summary>
    /// <KeyProperties>
    /// ProductId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("ProductId")]
    public partial class ProductDetail : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new ProductDetail object.
        /// </summary>
        /// <param name="productId">Initial value of ProductId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static ProductDetail CreateProductDetail(int productId)
        {
            ProductDetail productDetail = new ProductDetail();
            productDetail.ProductId = productId;
            return productDetail;
        }
        /// <summary>
        /// There are no comments for Property ProductId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int ProductId
        {
            get
            {
                return this._ProductId;
            }
            set
            {
                this.OnProductIdChanging(value);
                this._ProductId = value;
                this.OnProductIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _ProductId;
        partial void OnProductIdChanging(int value);
        partial void OnProductIdChanged();
        /// <summary>
        /// There are no comments for Property Details in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Details
        {
            get
            {
                return this._Details;
            }
            set
            {
                this.OnDetailsChanging(value);
                this._Details = value;
                this.OnDetailsChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Details;
        partial void OnDetailsChanging(string value);
        partial void OnDetailsChanged();
        /// <summary>
        /// There are no comments for Property Product in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product Product
        {
            get
            {
                return this._Product;
            }
            set
            {
                this.OnProductChanging(value);
                this._Product = value;
                this.OnProductChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product _Product;
        partial void OnProductChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product value);
        partial void OnProductChanged();
    }
    /// <summary>
    /// There are no comments for ProductReviewSingle in the schema.
    /// </summary>
    public partial class ProductReviewSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<ProductReview>
    {
        /// <summary>
        /// Initialize a new ProductReviewSingle object.
        /// </summary>
        public ProductReviewSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new ProductReviewSingle object.
        /// </summary>
        public ProductReviewSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new ProductReviewSingle object.
        /// </summary>
        public ProductReviewSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<ProductReview> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Product in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle Product
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Product == null))
                {
                    this._Product = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle(this.Context, GetPath("Product"));
                }
                return this._Product;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle _Product;
    }
    /// <summary>
    /// There are no comments for ProductReview in the schema.
    /// </summary>
    /// <KeyProperties>
    /// ProductId
    /// ReviewId
    /// RevisionId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("ProductId", "ReviewId", "RevisionId")]
    public partial class ProductReview : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new ProductReview object.
        /// </summary>
        /// <param name="productId">Initial value of ProductId.</param>
        /// <param name="reviewId">Initial value of ReviewId.</param>
        /// <param name="revisionId">Initial value of RevisionId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static ProductReview CreateProductReview(int productId, int reviewId, string revisionId)
        {
            ProductReview productReview = new ProductReview();
            productReview.ProductId = productId;
            productReview.ReviewId = reviewId;
            productReview.RevisionId = revisionId;
            return productReview;
        }
        /// <summary>
        /// There are no comments for Property ProductId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int ProductId
        {
            get
            {
                return this._ProductId;
            }
            set
            {
                this.OnProductIdChanging(value);
                this._ProductId = value;
                this.OnProductIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _ProductId;
        partial void OnProductIdChanging(int value);
        partial void OnProductIdChanged();
        /// <summary>
        /// There are no comments for Property ReviewId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int ReviewId
        {
            get
            {
                return this._ReviewId;
            }
            set
            {
                this.OnReviewIdChanging(value);
                this._ReviewId = value;
                this.OnReviewIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _ReviewId;
        partial void OnReviewIdChanging(int value);
        partial void OnReviewIdChanged();
        /// <summary>
        /// There are no comments for Property Review in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Review
        {
            get
            {
                return this._Review;
            }
            set
            {
                this.OnReviewChanging(value);
                this._Review = value;
                this.OnReviewChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Review;
        partial void OnReviewChanging(string value);
        partial void OnReviewChanged();
        /// <summary>
        /// There are no comments for Property RevisionId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string RevisionId
        {
            get
            {
                return this._RevisionId;
            }
            set
            {
                this.OnRevisionIdChanging(value);
                this._RevisionId = value;
                this.OnRevisionIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _RevisionId;
        partial void OnRevisionIdChanging(string value);
        partial void OnRevisionIdChanged();
        /// <summary>
        /// There are no comments for Property Product in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product Product
        {
            get
            {
                return this._Product;
            }
            set
            {
                this.OnProductChanging(value);
                this._Product = value;
                this.OnProductChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product _Product;
        partial void OnProductChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product value);
        partial void OnProductChanged();
    }
    /// <summary>
    /// There are no comments for ProductPhotoSingle in the schema.
    /// </summary>
    public partial class ProductPhotoSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<ProductPhoto>
    {
        /// <summary>
        /// Initialize a new ProductPhotoSingle object.
        /// </summary>
        public ProductPhotoSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new ProductPhotoSingle object.
        /// </summary>
        public ProductPhotoSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new ProductPhotoSingle object.
        /// </summary>
        public ProductPhotoSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<ProductPhoto> query)
            : base(query) {}

    }
    /// <summary>
    /// There are no comments for ProductPhoto in the schema.
    /// </summary>
    /// <KeyProperties>
    /// PhotoId
    /// ProductId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("PhotoId", "ProductId")]
    public partial class ProductPhoto : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new ProductPhoto object.
        /// </summary>
        /// <param name="productId">Initial value of ProductId.</param>
        /// <param name="photoId">Initial value of PhotoId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static ProductPhoto CreateProductPhoto(int productId, int photoId)
        {
            ProductPhoto productPhoto = new ProductPhoto();
            productPhoto.ProductId = productId;
            productPhoto.PhotoId = photoId;
            return productPhoto;
        }
        /// <summary>
        /// There are no comments for Property ProductId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int ProductId
        {
            get
            {
                return this._ProductId;
            }
            set
            {
                this.OnProductIdChanging(value);
                this._ProductId = value;
                this.OnProductIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _ProductId;
        partial void OnProductIdChanging(int value);
        partial void OnProductIdChanged();
        /// <summary>
        /// There are no comments for Property PhotoId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int PhotoId
        {
            get
            {
                return this._PhotoId;
            }
            set
            {
                this.OnPhotoIdChanging(value);
                this._PhotoId = value;
                this.OnPhotoIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _PhotoId;
        partial void OnPhotoIdChanging(int value);
        partial void OnPhotoIdChanged();
        /// <summary>
        /// There are no comments for Property Photo in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public byte[] Photo
        {
            get
            {
                return this._Photo;
            }
            set
            {
                this.OnPhotoChanging(value);
                this._Photo = value;
                this.OnPhotoChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private byte[] _Photo;
        partial void OnPhotoChanging(byte[] value);
        partial void OnPhotoChanged();
    }
    /// <summary>
    /// There are no comments for CustomerInfoSingle in the schema.
    /// </summary>
    public partial class CustomerInfoSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<CustomerInfo>
    {
        /// <summary>
        /// Initialize a new CustomerInfoSingle object.
        /// </summary>
        public CustomerInfoSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new CustomerInfoSingle object.
        /// </summary>
        public CustomerInfoSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new CustomerInfoSingle object.
        /// </summary>
        public CustomerInfoSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<CustomerInfo> query)
            : base(query) {}

    }
    /// <summary>
    /// There are no comments for CustomerInfo in the schema.
    /// </summary>
    /// <KeyProperties>
    /// CustomerInfoId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("CustomerInfoId")]
    [global::Microsoft.OData.Client.HasStream()]
    public partial class CustomerInfo : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new CustomerInfo object.
        /// </summary>
        /// <param name="customerInfoId">Initial value of CustomerInfoId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static CustomerInfo CreateCustomerInfo(int customerInfoId)
        {
            CustomerInfo customerInfo = new CustomerInfo();
            customerInfo.CustomerInfoId = customerInfoId;
            return customerInfo;
        }
        /// <summary>
        /// There are no comments for Property CustomerInfoId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int CustomerInfoId
        {
            get
            {
                return this._CustomerInfoId;
            }
            set
            {
                this.OnCustomerInfoIdChanging(value);
                this._CustomerInfoId = value;
                this.OnCustomerInfoIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _CustomerInfoId;
        partial void OnCustomerInfoIdChanging(int value);
        partial void OnCustomerInfoIdChanged();
        /// <summary>
        /// There are no comments for Property Information in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Information
        {
            get
            {
                return this._Information;
            }
            set
            {
                this.OnInformationChanging(value);
                this._Information = value;
                this.OnInformationChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Information;
        partial void OnInformationChanging(string value);
        partial void OnInformationChanged();
    }
    /// <summary>
    /// There are no comments for ComputerSingle in the schema.
    /// </summary>
    public partial class ComputerSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<Computer>
    {
        /// <summary>
        /// Initialize a new ComputerSingle object.
        /// </summary>
        public ComputerSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new ComputerSingle object.
        /// </summary>
        public ComputerSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new ComputerSingle object.
        /// </summary>
        public ComputerSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<Computer> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for ComputerDetail in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetailSingle ComputerDetail
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._ComputerDetail == null))
                {
                    this._ComputerDetail = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetailSingle(this.Context, GetPath("ComputerDetail"));
                }
                return this._ComputerDetail;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetailSingle _ComputerDetail;
    }
    /// <summary>
    /// There are no comments for Computer in the schema.
    /// </summary>
    /// <KeyProperties>
    /// ComputerId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("ComputerId")]
    public partial class Computer : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new Computer object.
        /// </summary>
        /// <param name="computerId">Initial value of ComputerId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Computer CreateComputer(int computerId)
        {
            Computer computer = new Computer();
            computer.ComputerId = computerId;
            return computer;
        }
        /// <summary>
        /// There are no comments for Property ComputerId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int ComputerId
        {
            get
            {
                return this._ComputerId;
            }
            set
            {
                this.OnComputerIdChanging(value);
                this._ComputerId = value;
                this.OnComputerIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _ComputerId;
        partial void OnComputerIdChanging(int value);
        partial void OnComputerIdChanged();
        /// <summary>
        /// There are no comments for Property Name in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Name
        {
            get
            {
                return this._Name;
            }
            set
            {
                this.OnNameChanging(value);
                this._Name = value;
                this.OnNameChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Name;
        partial void OnNameChanging(string value);
        partial void OnNameChanged();
        /// <summary>
        /// There are no comments for Property ComputerDetail in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetail ComputerDetail
        {
            get
            {
                return this._ComputerDetail;
            }
            set
            {
                this.OnComputerDetailChanging(value);
                this._ComputerDetail = value;
                this.OnComputerDetailChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetail _ComputerDetail;
        partial void OnComputerDetailChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetail value);
        partial void OnComputerDetailChanged();
        /// <summary>
        /// There are no comments for GetComputer in the schema.
        /// </summary>
        public global::Microsoft.OData.Client.DataServiceActionQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer> GetComputer()
        {
            global::Microsoft.OData.Client.EntityDescriptor resource = Context.EntityTracker.TryGetEntityDescriptor(this);
            if (resource == null)
            {
                throw new global::System.Exception("cannot find entity");
            }

            return new global::Microsoft.OData.Client.DataServiceActionQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer>(this.Context, resource.EditLink.OriginalString.Trim('/') + "/Microsoft.Test.OData.Services.AstoriaDefaultService.GetComputer");
        }
    }
    /// <summary>
    /// There are no comments for ComputerDetailSingle in the schema.
    /// </summary>
    public partial class ComputerDetailSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<ComputerDetail>
    {
        /// <summary>
        /// Initialize a new ComputerDetailSingle object.
        /// </summary>
        public ComputerDetailSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new ComputerDetailSingle object.
        /// </summary>
        public ComputerDetailSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new ComputerDetailSingle object.
        /// </summary>
        public ComputerDetailSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<ComputerDetail> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Computer in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerSingle Computer
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Computer == null))
                {
                    this._Computer = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerSingle(this.Context, GetPath("Computer"));
                }
                return this._Computer;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerSingle _Computer;
    }
    /// <summary>
    /// There are no comments for ComputerDetail in the schema.
    /// </summary>
    /// <KeyProperties>
    /// ComputerDetailId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("ComputerDetailId")]
    public partial class ComputerDetail : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new ComputerDetail object.
        /// </summary>
        /// <param name="computerDetailId">Initial value of ComputerDetailId.</param>
        /// <param name="purchaseDate">Initial value of PurchaseDate.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static ComputerDetail CreateComputerDetail(int computerDetailId, global::System.DateTimeOffset purchaseDate)
        {
            ComputerDetail computerDetail = new ComputerDetail();
            computerDetail.ComputerDetailId = computerDetailId;
            computerDetail.PurchaseDate = purchaseDate;
            return computerDetail;
        }
        /// <summary>
        /// There are no comments for Property ComputerDetailId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int ComputerDetailId
        {
            get
            {
                return this._ComputerDetailId;
            }
            set
            {
                this.OnComputerDetailIdChanging(value);
                this._ComputerDetailId = value;
                this.OnComputerDetailIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _ComputerDetailId;
        partial void OnComputerDetailIdChanging(int value);
        partial void OnComputerDetailIdChanged();
        /// <summary>
        /// There are no comments for Property Manufacturer in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Manufacturer
        {
            get
            {
                return this._Manufacturer;
            }
            set
            {
                this.OnManufacturerChanging(value);
                this._Manufacturer = value;
                this.OnManufacturerChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Manufacturer;
        partial void OnManufacturerChanging(string value);
        partial void OnManufacturerChanged();
        /// <summary>
        /// There are no comments for Property Model in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Model
        {
            get
            {
                return this._Model;
            }
            set
            {
                this.OnModelChanging(value);
                this._Model = value;
                this.OnModelChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Model;
        partial void OnModelChanging(string value);
        partial void OnModelChanged();
        /// <summary>
        /// There are no comments for Property Serial in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Serial
        {
            get
            {
                return this._Serial;
            }
            set
            {
                this.OnSerialChanging(value);
                this._Serial = value;
                this.OnSerialChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Serial;
        partial void OnSerialChanging(string value);
        partial void OnSerialChanged();
        /// <summary>
        /// There are no comments for Property SpecificationsBag in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<string> SpecificationsBag
        {
            get
            {
                return this._SpecificationsBag;
            }
            set
            {
                this.OnSpecificationsBagChanging(value);
                this._SpecificationsBag = value;
                this.OnSpecificationsBagChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<string> _SpecificationsBag = new global::System.Collections.ObjectModel.Collection<string>();
        partial void OnSpecificationsBagChanging(global::System.Collections.ObjectModel.Collection<string> value);
        partial void OnSpecificationsBagChanged();
        /// <summary>
        /// There are no comments for Property PurchaseDate in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.DateTimeOffset PurchaseDate
        {
            get
            {
                return this._PurchaseDate;
            }
            set
            {
                this.OnPurchaseDateChanging(value);
                this._PurchaseDate = value;
                this.OnPurchaseDateChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.DateTimeOffset _PurchaseDate;
        partial void OnPurchaseDateChanging(global::System.DateTimeOffset value);
        partial void OnPurchaseDateChanged();
        /// <summary>
        /// There are no comments for Property Dimensions in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Dimensions Dimensions
        {
            get
            {
                return this._Dimensions;
            }
            set
            {
                this.OnDimensionsChanging(value);
                this._Dimensions = value;
                this.OnDimensionsChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Dimensions _Dimensions;
        partial void OnDimensionsChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Dimensions value);
        partial void OnDimensionsChanged();
        /// <summary>
        /// There are no comments for Property Computer in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer Computer
        {
            get
            {
                return this._Computer;
            }
            set
            {
                this.OnComputerChanging(value);
                this._Computer = value;
                this.OnComputerChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer _Computer;
        partial void OnComputerChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer value);
        partial void OnComputerChanged();
        /// <summary>
        /// There are no comments for ResetComputerDetailsSpecifications in the schema.
        /// </summary>
        public global::Microsoft.OData.Client.DataServiceActionQuery ResetComputerDetailsSpecifications(global::System.Collections.Generic.ICollection<string> specifications, global::System.DateTimeOffset purchaseTime)
        {
            global::Microsoft.OData.Client.EntityDescriptor resource = Context.EntityTracker.TryGetEntityDescriptor(this);
            if (resource == null)
            {
                throw new global::System.Exception("cannot find entity");
            }

            return new global::Microsoft.OData.Client.DataServiceActionQuery(this.Context, resource.EditLink.OriginalString.Trim('/') + "/Microsoft.Test.OData.Services.AstoriaDefaultService.ResetComputerDetailsSpecifications", new global::Microsoft.OData.Client.BodyOperationParameter("specifications", specifications),
                    new global::Microsoft.OData.Client.BodyOperationParameter("purchaseTime", purchaseTime));
        }
    }
    /// <summary>
    /// There are no comments for DriverSingle in the schema.
    /// </summary>
    public partial class DriverSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<Driver>
    {
        /// <summary>
        /// Initialize a new DriverSingle object.
        /// </summary>
        public DriverSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new DriverSingle object.
        /// </summary>
        public DriverSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new DriverSingle object.
        /// </summary>
        public DriverSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<Driver> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for License in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LicenseSingle License
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._License == null))
                {
                    this._License = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LicenseSingle(this.Context, GetPath("License"));
                }
                return this._License;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LicenseSingle _License;
    }
    /// <summary>
    /// There are no comments for Driver in the schema.
    /// </summary>
    /// <KeyProperties>
    /// Name
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("Name")]
    public partial class Driver : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new Driver object.
        /// </summary>
        /// <param name="name">Initial value of Name.</param>
        /// <param name="birthDate">Initial value of BirthDate.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Driver CreateDriver(string name, global::System.DateTimeOffset birthDate)
        {
            Driver driver = new Driver();
            driver.Name = name;
            driver.BirthDate = birthDate;
            return driver;
        }
        /// <summary>
        /// There are no comments for Property Name in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Name
        {
            get
            {
                return this._Name;
            }
            set
            {
                this.OnNameChanging(value);
                this._Name = value;
                this.OnNameChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Name;
        partial void OnNameChanging(string value);
        partial void OnNameChanged();
        /// <summary>
        /// There are no comments for Property BirthDate in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.DateTimeOffset BirthDate
        {
            get
            {
                return this._BirthDate;
            }
            set
            {
                this.OnBirthDateChanging(value);
                this._BirthDate = value;
                this.OnBirthDateChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.DateTimeOffset _BirthDate;
        partial void OnBirthDateChanging(global::System.DateTimeOffset value);
        partial void OnBirthDateChanged();
        /// <summary>
        /// There are no comments for Property License in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.License License
        {
            get
            {
                return this._License;
            }
            set
            {
                this.OnLicenseChanging(value);
                this._License = value;
                this.OnLicenseChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.License _License;
        partial void OnLicenseChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.License value);
        partial void OnLicenseChanged();
    }
    /// <summary>
    /// There are no comments for LicenseSingle in the schema.
    /// </summary>
    public partial class LicenseSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<License>
    {
        /// <summary>
        /// Initialize a new LicenseSingle object.
        /// </summary>
        public LicenseSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new LicenseSingle object.
        /// </summary>
        public LicenseSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new LicenseSingle object.
        /// </summary>
        public LicenseSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<License> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Driver in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DriverSingle Driver
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Driver == null))
                {
                    this._Driver = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DriverSingle(this.Context, GetPath("Driver"));
                }
                return this._Driver;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DriverSingle _Driver;
    }
    /// <summary>
    /// There are no comments for License in the schema.
    /// </summary>
    /// <KeyProperties>
    /// Name
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("Name")]
    public partial class License : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new License object.
        /// </summary>
        /// <param name="name">Initial value of Name.</param>
        /// <param name="expirationDate">Initial value of ExpirationDate.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static License CreateLicense(string name, global::System.DateTimeOffset expirationDate)
        {
            License license = new License();
            license.Name = name;
            license.ExpirationDate = expirationDate;
            return license;
        }
        /// <summary>
        /// There are no comments for Property Name in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Name
        {
            get
            {
                return this._Name;
            }
            set
            {
                this.OnNameChanging(value);
                this._Name = value;
                this.OnNameChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Name;
        partial void OnNameChanging(string value);
        partial void OnNameChanged();
        /// <summary>
        /// There are no comments for Property LicenseNumber in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string LicenseNumber
        {
            get
            {
                return this._LicenseNumber;
            }
            set
            {
                this.OnLicenseNumberChanging(value);
                this._LicenseNumber = value;
                this.OnLicenseNumberChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _LicenseNumber;
        partial void OnLicenseNumberChanging(string value);
        partial void OnLicenseNumberChanged();
        /// <summary>
        /// There are no comments for Property LicenseClass in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string LicenseClass
        {
            get
            {
                return this._LicenseClass;
            }
            set
            {
                this.OnLicenseClassChanging(value);
                this._LicenseClass = value;
                this.OnLicenseClassChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _LicenseClass;
        partial void OnLicenseClassChanging(string value);
        partial void OnLicenseClassChanged();
        /// <summary>
        /// There are no comments for Property Restrictions in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Restrictions
        {
            get
            {
                return this._Restrictions;
            }
            set
            {
                this.OnRestrictionsChanging(value);
                this._Restrictions = value;
                this.OnRestrictionsChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Restrictions;
        partial void OnRestrictionsChanging(string value);
        partial void OnRestrictionsChanged();
        /// <summary>
        /// There are no comments for Property ExpirationDate in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.DateTimeOffset ExpirationDate
        {
            get
            {
                return this._ExpirationDate;
            }
            set
            {
                this.OnExpirationDateChanging(value);
                this._ExpirationDate = value;
                this.OnExpirationDateChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.DateTimeOffset _ExpirationDate;
        partial void OnExpirationDateChanging(global::System.DateTimeOffset value);
        partial void OnExpirationDateChanged();
        /// <summary>
        /// There are no comments for Property Driver in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Driver Driver
        {
            get
            {
                return this._Driver;
            }
            set
            {
                this.OnDriverChanging(value);
                this._Driver = value;
                this.OnDriverChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Driver _Driver;
        partial void OnDriverChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Driver value);
        partial void OnDriverChanged();
    }
    /// <summary>
    /// There are no comments for MappedEntityTypeSingle in the schema.
    /// </summary>
    public partial class MappedEntityTypeSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<MappedEntityType>
    {
        /// <summary>
        /// Initialize a new MappedEntityTypeSingle object.
        /// </summary>
        public MappedEntityTypeSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new MappedEntityTypeSingle object.
        /// </summary>
        public MappedEntityTypeSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new MappedEntityTypeSingle object.
        /// </summary>
        public MappedEntityTypeSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<MappedEntityType> query)
            : base(query) {}

    }
    /// <summary>
    /// There are no comments for MappedEntityType in the schema.
    /// </summary>
    /// <KeyProperties>
    /// Id
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("Id")]
    public partial class MappedEntityType : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new MappedEntityType object.
        /// </summary>
        /// <param name="ID">Initial value of Id.</param>
        /// <param name="length">Initial value of Length.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static MappedEntityType CreateMappedEntityType(int ID, int length)
        {
            MappedEntityType mappedEntityType = new MappedEntityType();
            mappedEntityType.Id = ID;
            mappedEntityType.Length = length;
            return mappedEntityType;
        }
        /// <summary>
        /// There are no comments for Property Id in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int Id
        {
            get
            {
                return this._Id;
            }
            set
            {
                this.OnIdChanging(value);
                this._Id = value;
                this.OnIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _Id;
        partial void OnIdChanging(int value);
        partial void OnIdChanged();
        /// <summary>
        /// There are no comments for Property Href in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Href
        {
            get
            {
                return this._Href;
            }
            set
            {
                this.OnHrefChanging(value);
                this._Href = value;
                this.OnHrefChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Href;
        partial void OnHrefChanging(string value);
        partial void OnHrefChanged();
        /// <summary>
        /// There are no comments for Property Title in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Title
        {
            get
            {
                return this._Title;
            }
            set
            {
                this.OnTitleChanging(value);
                this._Title = value;
                this.OnTitleChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Title;
        partial void OnTitleChanging(string value);
        partial void OnTitleChanged();
        /// <summary>
        /// There are no comments for Property HrefLang in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string HrefLang
        {
            get
            {
                return this._HrefLang;
            }
            set
            {
                this.OnHrefLangChanging(value);
                this._HrefLang = value;
                this.OnHrefLangChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _HrefLang;
        partial void OnHrefLangChanging(string value);
        partial void OnHrefLangChanged();
        /// <summary>
        /// There are no comments for Property Type in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Type
        {
            get
            {
                return this._Type;
            }
            set
            {
                this.OnTypeChanging(value);
                this._Type = value;
                this.OnTypeChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Type;
        partial void OnTypeChanging(string value);
        partial void OnTypeChanged();
        /// <summary>
        /// There are no comments for Property Length in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int Length
        {
            get
            {
                return this._Length;
            }
            set
            {
                this.OnLengthChanging(value);
                this._Length = value;
                this.OnLengthChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _Length;
        partial void OnLengthChanging(int value);
        partial void OnLengthChanged();
        /// <summary>
        /// There are no comments for Property BagOfPrimitiveToLinks in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<string> BagOfPrimitiveToLinks
        {
            get
            {
                return this._BagOfPrimitiveToLinks;
            }
            set
            {
                this.OnBagOfPrimitiveToLinksChanging(value);
                this._BagOfPrimitiveToLinks = value;
                this.OnBagOfPrimitiveToLinksChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<string> _BagOfPrimitiveToLinks = new global::System.Collections.ObjectModel.Collection<string>();
        partial void OnBagOfPrimitiveToLinksChanging(global::System.Collections.ObjectModel.Collection<string> value);
        partial void OnBagOfPrimitiveToLinksChanged();
        /// <summary>
        /// There are no comments for Property Logo in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public byte[] Logo
        {
            get
            {
                return this._Logo;
            }
            set
            {
                this.OnLogoChanging(value);
                this._Logo = value;
                this.OnLogoChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private byte[] _Logo;
        partial void OnLogoChanging(byte[] value);
        partial void OnLogoChanged();
        /// <summary>
        /// There are no comments for Property BagOfDecimals in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<decimal> BagOfDecimals
        {
            get
            {
                return this._BagOfDecimals;
            }
            set
            {
                this.OnBagOfDecimalsChanging(value);
                this._BagOfDecimals = value;
                this.OnBagOfDecimalsChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<decimal> _BagOfDecimals = new global::System.Collections.ObjectModel.Collection<decimal>();
        partial void OnBagOfDecimalsChanging(global::System.Collections.ObjectModel.Collection<decimal> value);
        partial void OnBagOfDecimalsChanged();
        /// <summary>
        /// There are no comments for Property BagOfDoubles in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<double> BagOfDoubles
        {
            get
            {
                return this._BagOfDoubles;
            }
            set
            {
                this.OnBagOfDoublesChanging(value);
                this._BagOfDoubles = value;
                this.OnBagOfDoublesChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<double> _BagOfDoubles = new global::System.Collections.ObjectModel.Collection<double>();
        partial void OnBagOfDoublesChanging(global::System.Collections.ObjectModel.Collection<double> value);
        partial void OnBagOfDoublesChanged();
        /// <summary>
        /// There are no comments for Property BagOfSingles in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<float> BagOfSingles
        {
            get
            {
                return this._BagOfSingles;
            }
            set
            {
                this.OnBagOfSinglesChanging(value);
                this._BagOfSingles = value;
                this.OnBagOfSinglesChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<float> _BagOfSingles = new global::System.Collections.ObjectModel.Collection<float>();
        partial void OnBagOfSinglesChanging(global::System.Collections.ObjectModel.Collection<float> value);
        partial void OnBagOfSinglesChanged();
        /// <summary>
        /// There are no comments for Property BagOfBytes in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<byte> BagOfBytes
        {
            get
            {
                return this._BagOfBytes;
            }
            set
            {
                this.OnBagOfBytesChanging(value);
                this._BagOfBytes = value;
                this.OnBagOfBytesChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<byte> _BagOfBytes = new global::System.Collections.ObjectModel.Collection<byte>();
        partial void OnBagOfBytesChanging(global::System.Collections.ObjectModel.Collection<byte> value);
        partial void OnBagOfBytesChanged();
        /// <summary>
        /// There are no comments for Property BagOfInt16s in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<short> BagOfInt16s
        {
            get
            {
                return this._BagOfInt16s;
            }
            set
            {
                this.OnBagOfInt16sChanging(value);
                this._BagOfInt16s = value;
                this.OnBagOfInt16sChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<short> _BagOfInt16s = new global::System.Collections.ObjectModel.Collection<short>();
        partial void OnBagOfInt16sChanging(global::System.Collections.ObjectModel.Collection<short> value);
        partial void OnBagOfInt16sChanged();
        /// <summary>
        /// There are no comments for Property BagOfInt32s in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<int> BagOfInt32s
        {
            get
            {
                return this._BagOfInt32s;
            }
            set
            {
                this.OnBagOfInt32sChanging(value);
                this._BagOfInt32s = value;
                this.OnBagOfInt32sChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<int> _BagOfInt32s = new global::System.Collections.ObjectModel.Collection<int>();
        partial void OnBagOfInt32sChanging(global::System.Collections.ObjectModel.Collection<int> value);
        partial void OnBagOfInt32sChanged();
        /// <summary>
        /// There are no comments for Property BagOfInt64s in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<long> BagOfInt64s
        {
            get
            {
                return this._BagOfInt64s;
            }
            set
            {
                this.OnBagOfInt64sChanging(value);
                this._BagOfInt64s = value;
                this.OnBagOfInt64sChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<long> _BagOfInt64s = new global::System.Collections.ObjectModel.Collection<long>();
        partial void OnBagOfInt64sChanging(global::System.Collections.ObjectModel.Collection<long> value);
        partial void OnBagOfInt64sChanged();
        /// <summary>
        /// There are no comments for Property BagOfGuids in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::System.Guid> BagOfGuids
        {
            get
            {
                return this._BagOfGuids;
            }
            set
            {
                this.OnBagOfGuidsChanging(value);
                this._BagOfGuids = value;
                this.OnBagOfGuidsChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::System.Guid> _BagOfGuids = new global::System.Collections.ObjectModel.Collection<global::System.Guid>();
        partial void OnBagOfGuidsChanging(global::System.Collections.ObjectModel.Collection<global::System.Guid> value);
        partial void OnBagOfGuidsChanged();
        /// <summary>
        /// There are no comments for Property BagOfDateTimeOffset in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::System.DateTimeOffset> BagOfDateTimeOffset
        {
            get
            {
                return this._BagOfDateTimeOffset;
            }
            set
            {
                this.OnBagOfDateTimeOffsetChanging(value);
                this._BagOfDateTimeOffset = value;
                this.OnBagOfDateTimeOffsetChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::System.DateTimeOffset> _BagOfDateTimeOffset = new global::System.Collections.ObjectModel.Collection<global::System.DateTimeOffset>();
        partial void OnBagOfDateTimeOffsetChanging(global::System.Collections.ObjectModel.Collection<global::System.DateTimeOffset> value);
        partial void OnBagOfDateTimeOffsetChanged();
        /// <summary>
        /// There are no comments for Property BagOfComplexToCategories in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComplexToCategory> BagOfComplexToCategories
        {
            get
            {
                return this._BagOfComplexToCategories;
            }
            set
            {
                this.OnBagOfComplexToCategoriesChanging(value);
                this._BagOfComplexToCategories = value;
                this.OnBagOfComplexToCategoriesChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComplexToCategory> _BagOfComplexToCategories = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComplexToCategory>();
        partial void OnBagOfComplexToCategoriesChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComplexToCategory> value);
        partial void OnBagOfComplexToCategoriesChanged();
        /// <summary>
        /// There are no comments for Property ComplexPhone in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone ComplexPhone
        {
            get
            {
                return this._ComplexPhone;
            }
            set
            {
                this.OnComplexPhoneChanging(value);
                this._ComplexPhone = value;
                this.OnComplexPhoneChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone _ComplexPhone;
        partial void OnComplexPhoneChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone value);
        partial void OnComplexPhoneChanged();
        /// <summary>
        /// There are no comments for Property ComplexContactDetails in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails ComplexContactDetails
        {
            get
            {
                return this._ComplexContactDetails;
            }
            set
            {
                this.OnComplexContactDetailsChanging(value);
                this._ComplexContactDetails = value;
                this.OnComplexContactDetailsChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails _ComplexContactDetails;
        partial void OnComplexContactDetailsChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContactDetails value);
        partial void OnComplexContactDetailsChanged();
    }
    /// <summary>
    /// There are no comments for CarSingle in the schema.
    /// </summary>
    public partial class CarSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<Car>
    {
        /// <summary>
        /// Initialize a new CarSingle object.
        /// </summary>
        public CarSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new CarSingle object.
        /// </summary>
        public CarSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new CarSingle object.
        /// </summary>
        public CarSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<Car> query)
            : base(query) {}

    }
    /// <summary>
    /// There are no comments for Car in the schema.
    /// </summary>
    /// <KeyProperties>
    /// VIN
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("VIN")]
    [global::Microsoft.OData.Client.HasStream()]
    public partial class Car : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new Car object.
        /// </summary>
        /// <param name="photo">Initial value of Photo.</param>
        /// <param name="video">Initial value of Video.</param>
        /// <param name="vIN">Initial value of VIN.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Car CreateCar(global::Microsoft.OData.Client.DataServiceStreamLink photo, global::Microsoft.OData.Client.DataServiceStreamLink video, int vIN)
        {
            Car car = new Car();
            car.Photo = photo;
            car.Video = video;
            car.VIN = vIN;
            return car;
        }
        /// <summary>
        /// There are no comments for Property Photo in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceStreamLink Photo
        {
            get
            {
                return this._Photo;
            }
            set
            {
                this.OnPhotoChanging(value);
                this._Photo = value;
                this.OnPhotoChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceStreamLink _Photo;
        partial void OnPhotoChanging(global::Microsoft.OData.Client.DataServiceStreamLink value);
        partial void OnPhotoChanged();
        /// <summary>
        /// There are no comments for Property Video in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceStreamLink Video
        {
            get
            {
                return this._Video;
            }
            set
            {
                this.OnVideoChanging(value);
                this._Video = value;
                this.OnVideoChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceStreamLink _Video;
        partial void OnVideoChanging(global::Microsoft.OData.Client.DataServiceStreamLink value);
        partial void OnVideoChanged();
        /// <summary>
        /// There are no comments for Property VIN in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int VIN
        {
            get
            {
                return this._VIN;
            }
            set
            {
                this.OnVINChanging(value);
                this._VIN = value;
                this.OnVINChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _VIN;
        partial void OnVINChanging(int value);
        partial void OnVINChanged();
        /// <summary>
        /// There are no comments for Property Description in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Description
        {
            get
            {
                return this._Description;
            }
            set
            {
                this.OnDescriptionChanging(value);
                this._Description = value;
                this.OnDescriptionChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Description;
        partial void OnDescriptionChanging(string value);
        partial void OnDescriptionChanged();
    }
    /// <summary>
    /// There are no comments for PersonSingle in the schema.
    /// </summary>
    public partial class PersonSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<Person>
    {
        /// <summary>
        /// Initialize a new PersonSingle object.
        /// </summary>
        public PersonSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new PersonSingle object.
        /// </summary>
        public PersonSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new PersonSingle object.
        /// </summary>
        public PersonSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<Person> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for PersonMetadata in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> PersonMetadata
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._PersonMetadata == null))
                {
                    this._PersonMetadata = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata>(GetPath("PersonMetadata"));
                }
                return this._PersonMetadata;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> _PersonMetadata;
    }
    /// <summary>
    /// There are no comments for Person in the schema.
    /// </summary>
    /// <KeyProperties>
    /// PersonId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("PersonId")]
    public partial class Person : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new Person object.
        /// </summary>
        /// <param name="personId">Initial value of PersonId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Person CreatePerson(int personId)
        {
            Person person = new Person();
            person.PersonId = personId;
            return person;
        }
        /// <summary>
        /// There are no comments for Property PersonId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int PersonId
        {
            get
            {
                return this._PersonId;
            }
            set
            {
                this.OnPersonIdChanging(value);
                this._PersonId = value;
                this.OnPersonIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _PersonId;
        partial void OnPersonIdChanging(int value);
        partial void OnPersonIdChanged();
        /// <summary>
        /// There are no comments for Property Name in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Name
        {
            get
            {
                return this._Name;
            }
            set
            {
                this.OnNameChanging(value);
                this._Name = value;
                this.OnNameChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Name;
        partial void OnNameChanging(string value);
        partial void OnNameChanged();
        /// <summary>
        /// There are no comments for Property PersonMetadata in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> PersonMetadata
        {
            get
            {
                return this._PersonMetadata;
            }
            set
            {
                this.OnPersonMetadataChanging(value);
                this._PersonMetadata = value;
                this.OnPersonMetadataChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> _PersonMetadata = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata>();
        partial void OnPersonMetadataChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> value);
        partial void OnPersonMetadataChanged();
    }
    /// <summary>
    /// There are no comments for PersonMetadataSingle in the schema.
    /// </summary>
    public partial class PersonMetadataSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<PersonMetadata>
    {
        /// <summary>
        /// Initialize a new PersonMetadataSingle object.
        /// </summary>
        public PersonMetadataSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new PersonMetadataSingle object.
        /// </summary>
        public PersonMetadataSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new PersonMetadataSingle object.
        /// </summary>
        public PersonMetadataSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<PersonMetadata> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Person in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonSingle Person
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Person == null))
                {
                    this._Person = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonSingle(this.Context, GetPath("Person"));
                }
                return this._Person;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonSingle _Person;
    }
    /// <summary>
    /// There are no comments for PersonMetadata in the schema.
    /// </summary>
    /// <KeyProperties>
    /// PersonMetadataId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("PersonMetadataId")]
    public partial class PersonMetadata : global::Microsoft.OData.Client.BaseEntityType
    {
        /// <summary>
        /// Create a new PersonMetadata object.
        /// </summary>
        /// <param name="personMetadataId">Initial value of PersonMetadataId.</param>
        /// <param name="personId">Initial value of PersonId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static PersonMetadata CreatePersonMetadata(int personMetadataId, int personId)
        {
            PersonMetadata personMetadata = new PersonMetadata();
            personMetadata.PersonMetadataId = personMetadataId;
            personMetadata.PersonId = personId;
            return personMetadata;
        }
        /// <summary>
        /// There are no comments for Property PersonMetadataId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int PersonMetadataId
        {
            get
            {
                return this._PersonMetadataId;
            }
            set
            {
                this.OnPersonMetadataIdChanging(value);
                this._PersonMetadataId = value;
                this.OnPersonMetadataIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _PersonMetadataId;
        partial void OnPersonMetadataIdChanging(int value);
        partial void OnPersonMetadataIdChanged();
        /// <summary>
        /// There are no comments for Property PersonId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int PersonId
        {
            get
            {
                return this._PersonId;
            }
            set
            {
                this.OnPersonIdChanging(value);
                this._PersonId = value;
                this.OnPersonIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _PersonId;
        partial void OnPersonIdChanging(int value);
        partial void OnPersonIdChanged();
        /// <summary>
        /// There are no comments for Property PropertyName in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string PropertyName
        {
            get
            {
                return this._PropertyName;
            }
            set
            {
                this.OnPropertyNameChanging(value);
                this._PropertyName = value;
                this.OnPropertyNameChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _PropertyName;
        partial void OnPropertyNameChanging(string value);
        partial void OnPropertyNameChanged();
        /// <summary>
        /// There are no comments for Property PropertyValue in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string PropertyValue
        {
            get
            {
                return this._PropertyValue;
            }
            set
            {
                this.OnPropertyValueChanging(value);
                this._PropertyValue = value;
                this.OnPropertyValueChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _PropertyValue;
        partial void OnPropertyValueChanging(string value);
        partial void OnPropertyValueChanged();
        /// <summary>
        /// There are no comments for Property Person in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person Person
        {
            get
            {
                return this._Person;
            }
            set
            {
                this.OnPersonChanging(value);
                this._Person = value;
                this.OnPersonChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person _Person;
        partial void OnPersonChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person value);
        partial void OnPersonChanged();
    }
    /// <summary>
    /// There are no comments for ContactDetails in the schema.
    /// </summary>
    public partial class ContactDetails
    {
        /// <summary>
        /// There are no comments for Property EmailBag in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<string> EmailBag
        {
            get
            {
                return this._EmailBag;
            }
            set
            {
                this.OnEmailBagChanging(value);
                this._EmailBag = value;
                this.OnEmailBagChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<string> _EmailBag = new global::System.Collections.ObjectModel.Collection<string>();
        partial void OnEmailBagChanging(global::System.Collections.ObjectModel.Collection<string> value);
        partial void OnEmailBagChanged();
        /// <summary>
        /// There are no comments for Property AlternativeNames in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<string> AlternativeNames
        {
            get
            {
                return this._AlternativeNames;
            }
            set
            {
                this.OnAlternativeNamesChanging(value);
                this._AlternativeNames = value;
                this.OnAlternativeNamesChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<string> _AlternativeNames = new global::System.Collections.ObjectModel.Collection<string>();
        partial void OnAlternativeNamesChanging(global::System.Collections.ObjectModel.Collection<string> value);
        partial void OnAlternativeNamesChanged();
        /// <summary>
        /// There are no comments for Property ContactAlias in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Aliases ContactAlias
        {
            get
            {
                return this._ContactAlias;
            }
            set
            {
                this.OnContactAliasChanging(value);
                this._ContactAlias = value;
                this.OnContactAliasChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Aliases _ContactAlias;
        partial void OnContactAliasChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Aliases value);
        partial void OnContactAliasChanged();
        /// <summary>
        /// There are no comments for Property HomePhone in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone HomePhone
        {
            get
            {
                return this._HomePhone;
            }
            set
            {
                this.OnHomePhoneChanging(value);
                this._HomePhone = value;
                this.OnHomePhoneChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone _HomePhone;
        partial void OnHomePhoneChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone value);
        partial void OnHomePhoneChanged();
        /// <summary>
        /// There are no comments for Property WorkPhone in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone WorkPhone
        {
            get
            {
                return this._WorkPhone;
            }
            set
            {
                this.OnWorkPhoneChanging(value);
                this._WorkPhone = value;
                this.OnWorkPhoneChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone _WorkPhone;
        partial void OnWorkPhoneChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone value);
        partial void OnWorkPhoneChanged();
        /// <summary>
        /// There are no comments for Property MobilePhoneBag in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone> MobilePhoneBag
        {
            get
            {
                return this._MobilePhoneBag;
            }
            set
            {
                this.OnMobilePhoneBagChanging(value);
                this._MobilePhoneBag = value;
                this.OnMobilePhoneBagChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone> _MobilePhoneBag = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone>();
        partial void OnMobilePhoneBagChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone> value);
        partial void OnMobilePhoneBagChanged();
    }
    /// <summary>
    /// There are no comments for AuditInfo in the schema.
    /// </summary>
    public partial class AuditInfo
    {
        /// <summary>
        /// Create a new AuditInfo object.
        /// </summary>
        /// <param name="modifiedDate">Initial value of ModifiedDate.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static AuditInfo CreateAuditInfo(global::System.DateTimeOffset modifiedDate)
        {
            AuditInfo auditInfo = new AuditInfo();
            auditInfo.ModifiedDate = modifiedDate;
            return auditInfo;
        }
        /// <summary>
        /// There are no comments for Property ModifiedDate in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.DateTimeOffset ModifiedDate
        {
            get
            {
                return this._ModifiedDate;
            }
            set
            {
                this.OnModifiedDateChanging(value);
                this._ModifiedDate = value;
                this.OnModifiedDateChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.DateTimeOffset _ModifiedDate;
        partial void OnModifiedDateChanging(global::System.DateTimeOffset value);
        partial void OnModifiedDateChanged();
        /// <summary>
        /// There are no comments for Property ModifiedBy in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string ModifiedBy
        {
            get
            {
                return this._ModifiedBy;
            }
            set
            {
                this.OnModifiedByChanging(value);
                this._ModifiedBy = value;
                this.OnModifiedByChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _ModifiedBy;
        partial void OnModifiedByChanging(string value);
        partial void OnModifiedByChanged();
        /// <summary>
        /// There are no comments for Property Concurrency in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ConcurrencyInfo Concurrency
        {
            get
            {
                return this._Concurrency;
            }
            set
            {
                this.OnConcurrencyChanging(value);
                this._Concurrency = value;
                this.OnConcurrencyChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ConcurrencyInfo _Concurrency;
        partial void OnConcurrencyChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ConcurrencyInfo value);
        partial void OnConcurrencyChanged();
    }
    /// <summary>
    /// There are no comments for ConcurrencyInfo in the schema.
    /// </summary>
    public partial class ConcurrencyInfo
    {
        /// <summary>
        /// There are no comments for Property Token in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Token
        {
            get
            {
                return this._Token;
            }
            set
            {
                this.OnTokenChanging(value);
                this._Token = value;
                this.OnTokenChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Token;
        partial void OnTokenChanging(string value);
        partial void OnTokenChanged();
        /// <summary>
        /// There are no comments for Property QueriedDateTime in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Nullable<global::System.DateTimeOffset> QueriedDateTime
        {
            get
            {
                return this._QueriedDateTime;
            }
            set
            {
                this.OnQueriedDateTimeChanging(value);
                this._QueriedDateTime = value;
                this.OnQueriedDateTimeChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Nullable<global::System.DateTimeOffset> _QueriedDateTime;
        partial void OnQueriedDateTimeChanging(global::System.Nullable<global::System.DateTimeOffset> value);
        partial void OnQueriedDateTimeChanged();
    }
    /// <summary>
    /// There are no comments for Dimensions in the schema.
    /// </summary>
    public partial class Dimensions
    {
        /// <summary>
        /// Create a new Dimensions object.
        /// </summary>
        /// <param name="width">Initial value of Width.</param>
        /// <param name="height">Initial value of Height.</param>
        /// <param name="depth">Initial value of Depth.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Dimensions CreateDimensions(decimal width, decimal height, decimal depth)
        {
            Dimensions dimensions = new Dimensions();
            dimensions.Width = width;
            dimensions.Height = height;
            dimensions.Depth = depth;
            return dimensions;
        }
        /// <summary>
        /// There are no comments for Property Width in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public decimal Width
        {
            get
            {
                return this._Width;
            }
            set
            {
                this.OnWidthChanging(value);
                this._Width = value;
                this.OnWidthChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private decimal _Width;
        partial void OnWidthChanging(decimal value);
        partial void OnWidthChanged();
        /// <summary>
        /// There are no comments for Property Height in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public decimal Height
        {
            get
            {
                return this._Height;
            }
            set
            {
                this.OnHeightChanging(value);
                this._Height = value;
                this.OnHeightChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private decimal _Height;
        partial void OnHeightChanging(decimal value);
        partial void OnHeightChanged();
        /// <summary>
        /// There are no comments for Property Depth in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public decimal Depth
        {
            get
            {
                return this._Depth;
            }
            set
            {
                this.OnDepthChanging(value);
                this._Depth = value;
                this.OnDepthChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private decimal _Depth;
        partial void OnDepthChanging(decimal value);
        partial void OnDepthChanged();
    }
    /// <summary>
    /// There are no comments for ComplexToCategory in the schema.
    /// </summary>
    public partial class ComplexToCategory
    {
        /// <summary>
        /// There are no comments for Property Term in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Term
        {
            get
            {
                return this._Term;
            }
            set
            {
                this.OnTermChanging(value);
                this._Term = value;
                this.OnTermChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Term;
        partial void OnTermChanging(string value);
        partial void OnTermChanged();
        /// <summary>
        /// There are no comments for Property Scheme in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Scheme
        {
            get
            {
                return this._Scheme;
            }
            set
            {
                this.OnSchemeChanging(value);
                this._Scheme = value;
                this.OnSchemeChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Scheme;
        partial void OnSchemeChanging(string value);
        partial void OnSchemeChanged();
        /// <summary>
        /// There are no comments for Property Label in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Label
        {
            get
            {
                return this._Label;
            }
            set
            {
                this.OnLabelChanging(value);
                this._Label = value;
                this.OnLabelChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Label;
        partial void OnLabelChanging(string value);
        partial void OnLabelChanged();
    }
    /// <summary>
    /// There are no comments for Phone in the schema.
    /// </summary>
    public partial class Phone
    {
        /// <summary>
        /// There are no comments for Property PhoneNumber in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string PhoneNumber
        {
            get
            {
                return this._PhoneNumber;
            }
            set
            {
                this.OnPhoneNumberChanging(value);
                this._PhoneNumber = value;
                this.OnPhoneNumberChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _PhoneNumber;
        partial void OnPhoneNumberChanging(string value);
        partial void OnPhoneNumberChanged();
        /// <summary>
        /// There are no comments for Property Extension in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Extension
        {
            get
            {
                return this._Extension;
            }
            set
            {
                this.OnExtensionChanging(value);
                this._Extension = value;
                this.OnExtensionChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Extension;
        partial void OnExtensionChanging(string value);
        partial void OnExtensionChanged();
    }
    /// <summary>
    /// There are no comments for Aliases in the schema.
    /// </summary>
    public partial class Aliases
    {
        /// <summary>
        /// There are no comments for Property AlternativeNames in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<string> AlternativeNames
        {
            get
            {
                return this._AlternativeNames;
            }
            set
            {
                this.OnAlternativeNamesChanging(value);
                this._AlternativeNames = value;
                this.OnAlternativeNamesChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<string> _AlternativeNames = new global::System.Collections.ObjectModel.Collection<string>();
        partial void OnAlternativeNamesChanging(global::System.Collections.ObjectModel.Collection<string> value);
        partial void OnAlternativeNamesChanged();
    }
    /// <summary>
    /// There are no comments for AllSpatialCollectionTypes_SimpleSingle in the schema.
    /// </summary>
    public partial class AllSpatialCollectionTypes_SimpleSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<AllSpatialCollectionTypes_Simple>
    {
        /// <summary>
        /// Initialize a new AllSpatialCollectionTypes_SimpleSingle object.
        /// </summary>
        public AllSpatialCollectionTypes_SimpleSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new AllSpatialCollectionTypes_SimpleSingle object.
        /// </summary>
        public AllSpatialCollectionTypes_SimpleSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new AllSpatialCollectionTypes_SimpleSingle object.
        /// </summary>
        public AllSpatialCollectionTypes_SimpleSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<AllSpatialCollectionTypes_Simple> query)
            : base(query) {}

    }
    /// <summary>
    /// There are no comments for AllSpatialCollectionTypes_Simple in the schema.
    /// </summary>
    /// <KeyProperties>
    /// Id
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("Id")]
    public partial class AllSpatialCollectionTypes_Simple : AllSpatialCollectionTypes
    {
        /// <summary>
        /// Create a new AllSpatialCollectionTypes_Simple object.
        /// </summary>
        /// <param name="ID">Initial value of Id.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static AllSpatialCollectionTypes_Simple CreateAllSpatialCollectionTypes_Simple(int ID)
        {
            AllSpatialCollectionTypes_Simple allSpatialCollectionTypes_Simple = new AllSpatialCollectionTypes_Simple();
            allSpatialCollectionTypes_Simple.Id = ID;
            return allSpatialCollectionTypes_Simple;
        }
        /// <summary>
        /// There are no comments for Property ManyGeogPoint in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyPoint> ManyGeogPoint
        {
            get
            {
                return this._ManyGeogPoint;
            }
            set
            {
                this.OnManyGeogPointChanging(value);
                this._ManyGeogPoint = value;
                this.OnManyGeogPointChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyPoint> _ManyGeogPoint = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyPoint>();
        partial void OnManyGeogPointChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyPoint> value);
        partial void OnManyGeogPointChanged();
        /// <summary>
        /// There are no comments for Property ManyGeogLine in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyLineString> ManyGeogLine
        {
            get
            {
                return this._ManyGeogLine;
            }
            set
            {
                this.OnManyGeogLineChanging(value);
                this._ManyGeogLine = value;
                this.OnManyGeogLineChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyLineString> _ManyGeogLine = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyLineString>();
        partial void OnManyGeogLineChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyLineString> value);
        partial void OnManyGeogLineChanged();
        /// <summary>
        /// There are no comments for Property ManyGeogPolygon in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyPolygon> ManyGeogPolygon
        {
            get
            {
                return this._ManyGeogPolygon;
            }
            set
            {
                this.OnManyGeogPolygonChanging(value);
                this._ManyGeogPolygon = value;
                this.OnManyGeogPolygonChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyPolygon> _ManyGeogPolygon = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyPolygon>();
        partial void OnManyGeogPolygonChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeographyPolygon> value);
        partial void OnManyGeogPolygonChanged();
        /// <summary>
        /// There are no comments for Property ManyGeomPoint in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryPoint> ManyGeomPoint
        {
            get
            {
                return this._ManyGeomPoint;
            }
            set
            {
                this.OnManyGeomPointChanging(value);
                this._ManyGeomPoint = value;
                this.OnManyGeomPointChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryPoint> _ManyGeomPoint = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryPoint>();
        partial void OnManyGeomPointChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryPoint> value);
        partial void OnManyGeomPointChanged();
        /// <summary>
        /// There are no comments for Property ManyGeomLine in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryLineString> ManyGeomLine
        {
            get
            {
                return this._ManyGeomLine;
            }
            set
            {
                this.OnManyGeomLineChanging(value);
                this._ManyGeomLine = value;
                this.OnManyGeomLineChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryLineString> _ManyGeomLine = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryLineString>();
        partial void OnManyGeomLineChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryLineString> value);
        partial void OnManyGeomLineChanged();
        /// <summary>
        /// There are no comments for Property ManyGeomPolygon in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryPolygon> ManyGeomPolygon
        {
            get
            {
                return this._ManyGeomPolygon;
            }
            set
            {
                this.OnManyGeomPolygonChanging(value);
                this._ManyGeomPolygon = value;
                this.OnManyGeomPolygonChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryPolygon> _ManyGeomPolygon = new global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryPolygon>();
        partial void OnManyGeomPolygonChanging(global::System.Collections.ObjectModel.Collection<global::Microsoft.Spatial.GeometryPolygon> value);
        partial void OnManyGeomPolygonChanged();
    }
    /// <summary>
    /// There are no comments for ProductPageViewSingle in the schema.
    /// </summary>
    public partial class ProductPageViewSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<ProductPageView>
    {
        /// <summary>
        /// Initialize a new ProductPageViewSingle object.
        /// </summary>
        public ProductPageViewSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new ProductPageViewSingle object.
        /// </summary>
        public ProductPageViewSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new ProductPageViewSingle object.
        /// </summary>
        public ProductPageViewSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<ProductPageView> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Login in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle Login
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Login == null))
                {
                    this._Login = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle(this.Context, GetPath("Login"));
                }
                return this._Login;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle _Login;
    }
    /// <summary>
    /// There are no comments for ProductPageView in the schema.
    /// </summary>
    /// <KeyProperties>
    /// PageViewId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("PageViewId")]
    public partial class ProductPageView : PageView
    {
        /// <summary>
        /// Create a new ProductPageView object.
        /// </summary>
        /// <param name="pageViewId">Initial value of PageViewId.</param>
        /// <param name="viewed">Initial value of Viewed.</param>
        /// <param name="timeSpentOnPage">Initial value of TimeSpentOnPage.</param>
        /// <param name="productId">Initial value of ProductId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static ProductPageView CreateProductPageView(int pageViewId, global::System.DateTimeOffset viewed, global::System.TimeSpan timeSpentOnPage, int productId)
        {
            ProductPageView productPageView = new ProductPageView();
            productPageView.PageViewId = pageViewId;
            productPageView.Viewed = viewed;
            productPageView.TimeSpentOnPage = timeSpentOnPage;
            productPageView.ProductId = productId;
            return productPageView;
        }
        /// <summary>
        /// There are no comments for Property ProductId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int ProductId
        {
            get
            {
                return this._ProductId;
            }
            set
            {
                this.OnProductIdChanging(value);
                this._ProductId = value;
                this.OnProductIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _ProductId;
        partial void OnProductIdChanging(int value);
        partial void OnProductIdChanged();
        /// <summary>
        /// There are no comments for Property ConcurrencyToken in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string ConcurrencyToken
        {
            get
            {
                return this._ConcurrencyToken;
            }
            set
            {
                this.OnConcurrencyTokenChanging(value);
                this._ConcurrencyToken = value;
                this.OnConcurrencyTokenChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _ConcurrencyToken;
        partial void OnConcurrencyTokenChanging(string value);
        partial void OnConcurrencyTokenChanged();
    }
    /// <summary>
    /// There are no comments for BackOrderLineSingle in the schema.
    /// </summary>
    public partial class BackOrderLineSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<BackOrderLine>
    {
        /// <summary>
        /// Initialize a new BackOrderLineSingle object.
        /// </summary>
        public BackOrderLineSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new BackOrderLineSingle object.
        /// </summary>
        public BackOrderLineSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new BackOrderLineSingle object.
        /// </summary>
        public BackOrderLineSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<BackOrderLine> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Order in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle Order
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Order == null))
                {
                    this._Order = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle(this.Context, GetPath("Order"));
                }
                return this._Order;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle _Order;
        /// <summary>
        /// There are no comments for Product in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle Product
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Product == null))
                {
                    this._Product = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle(this.Context, GetPath("Product"));
                }
                return this._Product;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle _Product;
    }
    /// <summary>
    /// There are no comments for BackOrderLine in the schema.
    /// </summary>
    /// <KeyProperties>
    /// OrderId
    /// ProductId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("OrderId", "ProductId")]
    public partial class BackOrderLine : OrderLine
    {
        /// <summary>
        /// Create a new BackOrderLine object.
        /// </summary>
        /// <param name="orderLineStream">Initial value of OrderLineStream.</param>
        /// <param name="orderId">Initial value of OrderId.</param>
        /// <param name="productId">Initial value of ProductId.</param>
        /// <param name="quantity">Initial value of Quantity.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static BackOrderLine CreateBackOrderLine(global::Microsoft.OData.Client.DataServiceStreamLink orderLineStream, int orderId, int productId, int quantity)
        {
            BackOrderLine backOrderLine = new BackOrderLine();
            backOrderLine.OrderLineStream = orderLineStream;
            backOrderLine.OrderId = orderId;
            backOrderLine.ProductId = productId;
            backOrderLine.Quantity = quantity;
            return backOrderLine;
        }
    }
    /// <summary>
    /// There are no comments for BackOrderLine2Single in the schema.
    /// </summary>
    public partial class BackOrderLine2Single : global::Microsoft.OData.Client.DataServiceQuerySingle<BackOrderLine2>
    {
        /// <summary>
        /// Initialize a new BackOrderLine2Single object.
        /// </summary>
        public BackOrderLine2Single(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new BackOrderLine2Single object.
        /// </summary>
        public BackOrderLine2Single(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new BackOrderLine2Single object.
        /// </summary>
        public BackOrderLine2Single(global::Microsoft.OData.Client.DataServiceQuerySingle<BackOrderLine2> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Order in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle Order
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Order == null))
                {
                    this._Order = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle(this.Context, GetPath("Order"));
                }
                return this._Order;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle _Order;
        /// <summary>
        /// There are no comments for Product in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle Product
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Product == null))
                {
                    this._Product = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle(this.Context, GetPath("Product"));
                }
                return this._Product;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle _Product;
    }
    /// <summary>
    /// There are no comments for BackOrderLine2 in the schema.
    /// </summary>
    /// <KeyProperties>
    /// OrderId
    /// ProductId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("OrderId", "ProductId")]
    public partial class BackOrderLine2 : BackOrderLine
    {
        /// <summary>
        /// Create a new BackOrderLine2 object.
        /// </summary>
        /// <param name="orderLineStream">Initial value of OrderLineStream.</param>
        /// <param name="orderId">Initial value of OrderId.</param>
        /// <param name="productId">Initial value of ProductId.</param>
        /// <param name="quantity">Initial value of Quantity.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static BackOrderLine2 CreateBackOrderLine2(global::Microsoft.OData.Client.DataServiceStreamLink orderLineStream, int orderId, int productId, int quantity)
        {
            BackOrderLine2 backOrderLine2 = new BackOrderLine2();
            backOrderLine2.OrderLineStream = orderLineStream;
            backOrderLine2.OrderId = orderId;
            backOrderLine2.ProductId = productId;
            backOrderLine2.Quantity = quantity;
            return backOrderLine2;
        }
    }
    /// <summary>
    /// There are no comments for DiscontinuedProductSingle in the schema.
    /// </summary>
    public partial class DiscontinuedProductSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<DiscontinuedProduct>
    {
        /// <summary>
        /// Initialize a new DiscontinuedProductSingle object.
        /// </summary>
        public DiscontinuedProductSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new DiscontinuedProductSingle object.
        /// </summary>
        public DiscontinuedProductSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new DiscontinuedProductSingle object.
        /// </summary>
        public DiscontinuedProductSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<DiscontinuedProduct> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for RelatedProducts in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product> RelatedProducts
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._RelatedProducts == null))
                {
                    this._RelatedProducts = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product>(GetPath("RelatedProducts"));
                }
                return this._RelatedProducts;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product> _RelatedProducts;
        /// <summary>
        /// There are no comments for Detail in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle Detail
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Detail == null))
                {
                    this._Detail = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle(this.Context, GetPath("Detail"));
                }
                return this._Detail;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle _Detail;
        /// <summary>
        /// There are no comments for Reviews in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview> Reviews
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Reviews == null))
                {
                    this._Reviews = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview>(GetPath("Reviews"));
                }
                return this._Reviews;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview> _Reviews;
        /// <summary>
        /// There are no comments for Photos in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto> Photos
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Photos == null))
                {
                    this._Photos = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto>(GetPath("Photos"));
                }
                return this._Photos;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto> _Photos;
    }
    /// <summary>
    /// There are no comments for DiscontinuedProduct in the schema.
    /// </summary>
    /// <KeyProperties>
    /// ProductId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("ProductId")]
    public partial class DiscontinuedProduct : Product
    {
        /// <summary>
        /// Create a new DiscontinuedProduct object.
        /// </summary>
        /// <param name="picture">Initial value of Picture.</param>
        /// <param name="productId">Initial value of ProductId.</param>
        /// <param name="discontinued">Initial value of Discontinued.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static DiscontinuedProduct CreateDiscontinuedProduct(global::Microsoft.OData.Client.DataServiceStreamLink picture, int productId, global::System.DateTimeOffset discontinued)
        {
            DiscontinuedProduct discontinuedProduct = new DiscontinuedProduct();
            discontinuedProduct.Picture = picture;
            discontinuedProduct.ProductId = productId;
            discontinuedProduct.Discontinued = discontinued;
            return discontinuedProduct;
        }
        /// <summary>
        /// There are no comments for Property Discontinued in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.DateTimeOffset Discontinued
        {
            get
            {
                return this._Discontinued;
            }
            set
            {
                this.OnDiscontinuedChanging(value);
                this._Discontinued = value;
                this.OnDiscontinuedChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.DateTimeOffset _Discontinued;
        partial void OnDiscontinuedChanging(global::System.DateTimeOffset value);
        partial void OnDiscontinuedChanged();
        /// <summary>
        /// There are no comments for Property ReplacementProductId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.Nullable<int> ReplacementProductId
        {
            get
            {
                return this._ReplacementProductId;
            }
            set
            {
                this.OnReplacementProductIdChanging(value);
                this._ReplacementProductId = value;
                this.OnReplacementProductIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.Nullable<int> _ReplacementProductId;
        partial void OnReplacementProductIdChanging(global::System.Nullable<int> value);
        partial void OnReplacementProductIdChanged();
        /// <summary>
        /// There are no comments for Property DiscontinuedPhone in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone DiscontinuedPhone
        {
            get
            {
                return this._DiscontinuedPhone;
            }
            set
            {
                this.OnDiscontinuedPhoneChanging(value);
                this._DiscontinuedPhone = value;
                this.OnDiscontinuedPhoneChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone _DiscontinuedPhone;
        partial void OnDiscontinuedPhoneChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Phone value);
        partial void OnDiscontinuedPhoneChanged();
        /// <summary>
        /// There are no comments for Property ChildConcurrencyToken in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string ChildConcurrencyToken
        {
            get
            {
                return this._ChildConcurrencyToken;
            }
            set
            {
                this.OnChildConcurrencyTokenChanging(value);
                this._ChildConcurrencyToken = value;
                this.OnChildConcurrencyTokenChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _ChildConcurrencyToken;
        partial void OnChildConcurrencyTokenChanging(string value);
        partial void OnChildConcurrencyTokenChanged();
    }
    /// <summary>
    /// There are no comments for ContractorSingle in the schema.
    /// </summary>
    public partial class ContractorSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<Contractor>
    {
        /// <summary>
        /// Initialize a new ContractorSingle object.
        /// </summary>
        public ContractorSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new ContractorSingle object.
        /// </summary>
        public ContractorSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new ContractorSingle object.
        /// </summary>
        public ContractorSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<Contractor> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for PersonMetadata in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> PersonMetadata
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._PersonMetadata == null))
                {
                    this._PersonMetadata = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata>(GetPath("PersonMetadata"));
                }
                return this._PersonMetadata;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> _PersonMetadata;
    }
    /// <summary>
    /// There are no comments for Contractor in the schema.
    /// </summary>
    /// <KeyProperties>
    /// PersonId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("PersonId")]
    public partial class Contractor : Person
    {
        /// <summary>
        /// Create a new Contractor object.
        /// </summary>
        /// <param name="personId">Initial value of PersonId.</param>
        /// <param name="contratorCompanyId">Initial value of ContratorCompanyId.</param>
        /// <param name="billingRate">Initial value of BillingRate.</param>
        /// <param name="teamContactPersonId">Initial value of TeamContactPersonId.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Contractor CreateContractor(int personId, int contratorCompanyId, int billingRate, int teamContactPersonId)
        {
            Contractor contractor = new Contractor();
            contractor.PersonId = personId;
            contractor.ContratorCompanyId = contratorCompanyId;
            contractor.BillingRate = billingRate;
            contractor.TeamContactPersonId = teamContactPersonId;
            return contractor;
        }
        /// <summary>
        /// There are no comments for Property ContratorCompanyId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int ContratorCompanyId
        {
            get
            {
                return this._ContratorCompanyId;
            }
            set
            {
                this.OnContratorCompanyIdChanging(value);
                this._ContratorCompanyId = value;
                this.OnContratorCompanyIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _ContratorCompanyId;
        partial void OnContratorCompanyIdChanging(int value);
        partial void OnContratorCompanyIdChanged();
        /// <summary>
        /// There are no comments for Property BillingRate in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int BillingRate
        {
            get
            {
                return this._BillingRate;
            }
            set
            {
                this.OnBillingRateChanging(value);
                this._BillingRate = value;
                this.OnBillingRateChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _BillingRate;
        partial void OnBillingRateChanging(int value);
        partial void OnBillingRateChanged();
        /// <summary>
        /// There are no comments for Property TeamContactPersonId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int TeamContactPersonId
        {
            get
            {
                return this._TeamContactPersonId;
            }
            set
            {
                this.OnTeamContactPersonIdChanging(value);
                this._TeamContactPersonId = value;
                this.OnTeamContactPersonIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _TeamContactPersonId;
        partial void OnTeamContactPersonIdChanging(int value);
        partial void OnTeamContactPersonIdChanged();
        /// <summary>
        /// There are no comments for Property JobDescription in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string JobDescription
        {
            get
            {
                return this._JobDescription;
            }
            set
            {
                this.OnJobDescriptionChanging(value);
                this._JobDescription = value;
                this.OnJobDescriptionChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _JobDescription;
        partial void OnJobDescriptionChanging(string value);
        partial void OnJobDescriptionChanged();
    }
    /// <summary>
    /// There are no comments for EmployeeSingle in the schema.
    /// </summary>
    public partial class EmployeeSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<Employee>
    {
        /// <summary>
        /// Initialize a new EmployeeSingle object.
        /// </summary>
        public EmployeeSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new EmployeeSingle object.
        /// </summary>
        public EmployeeSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new EmployeeSingle object.
        /// </summary>
        public EmployeeSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<Employee> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Manager in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle Manager
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Manager == null))
                {
                    this._Manager = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle(this.Context, GetPath("Manager"));
                }
                return this._Manager;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle _Manager;
        /// <summary>
        /// There are no comments for PersonMetadata in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> PersonMetadata
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._PersonMetadata == null))
                {
                    this._PersonMetadata = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata>(GetPath("PersonMetadata"));
                }
                return this._PersonMetadata;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> _PersonMetadata;
    }
    /// <summary>
    /// There are no comments for Employee in the schema.
    /// </summary>
    /// <KeyProperties>
    /// PersonId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("PersonId")]
    public partial class Employee : Person
    {
        /// <summary>
        /// Create a new Employee object.
        /// </summary>
        /// <param name="personId">Initial value of PersonId.</param>
        /// <param name="managersPersonId">Initial value of ManagersPersonId.</param>
        /// <param name="salary">Initial value of Salary.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static Employee CreateEmployee(int personId, int managersPersonId, int salary)
        {
            Employee employee = new Employee();
            employee.PersonId = personId;
            employee.ManagersPersonId = managersPersonId;
            employee.Salary = salary;
            return employee;
        }
        /// <summary>
        /// There are no comments for Property ManagersPersonId in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int ManagersPersonId
        {
            get
            {
                return this._ManagersPersonId;
            }
            set
            {
                this.OnManagersPersonIdChanging(value);
                this._ManagersPersonId = value;
                this.OnManagersPersonIdChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _ManagersPersonId;
        partial void OnManagersPersonIdChanging(int value);
        partial void OnManagersPersonIdChanged();
        /// <summary>
        /// There are no comments for Property Salary in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int Salary
        {
            get
            {
                return this._Salary;
            }
            set
            {
                this.OnSalaryChanging(value);
                this._Salary = value;
                this.OnSalaryChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _Salary;
        partial void OnSalaryChanging(int value);
        partial void OnSalaryChanged();
        /// <summary>
        /// There are no comments for Property Title in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string Title
        {
            get
            {
                return this._Title;
            }
            set
            {
                this.OnTitleChanging(value);
                this._Title = value;
                this.OnTitleChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _Title;
        partial void OnTitleChanging(string value);
        partial void OnTitleChanged();
        /// <summary>
        /// There are no comments for Property Manager in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee Manager
        {
            get
            {
                return this._Manager;
            }
            set
            {
                this.OnManagerChanging(value);
                this._Manager = value;
                this.OnManagerChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee _Manager;
        partial void OnManagerChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee value);
        partial void OnManagerChanged();
        /// <summary>
        /// There are no comments for Sack in the schema.
        /// </summary>
        public global::Microsoft.OData.Client.DataServiceActionQuery Sack()
        {
            global::Microsoft.OData.Client.EntityDescriptor resource = Context.EntityTracker.TryGetEntityDescriptor(this);
            if (resource == null)
            {
                throw new global::System.Exception("cannot find entity");
            }

            return new global::Microsoft.OData.Client.DataServiceActionQuery(this.Context, resource.EditLink.OriginalString.Trim('/') + "/Microsoft.Test.OData.Services.AstoriaDefaultService.Sack");
        }
    }
    /// <summary>
    /// There are no comments for SpecialEmployeeSingle in the schema.
    /// </summary>
    public partial class SpecialEmployeeSingle : global::Microsoft.OData.Client.DataServiceQuerySingle<SpecialEmployee>
    {
        /// <summary>
        /// Initialize a new SpecialEmployeeSingle object.
        /// </summary>
        public SpecialEmployeeSingle(global::Microsoft.OData.Client.DataServiceContext context, string path)
            : base(context, path) {}

        /// <summary>
        /// Initialize a new SpecialEmployeeSingle object.
        /// </summary>
        public SpecialEmployeeSingle(global::Microsoft.OData.Client.DataServiceContext context, string path, bool isComposable)
            : base(context, path, isComposable) {}

        /// <summary>
        /// Initialize a new SpecialEmployeeSingle object.
        /// </summary>
        public SpecialEmployeeSingle(global::Microsoft.OData.Client.DataServiceQuerySingle<SpecialEmployee> query)
            : base(query) {}

        /// <summary>
        /// There are no comments for Car in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CarSingle Car
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Car == null))
                {
                    this._Car = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CarSingle(this.Context, GetPath("Car"));
                }
                return this._Car;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CarSingle _Car;
        /// <summary>
        /// There are no comments for Manager in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle Manager
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._Manager == null))
                {
                    this._Manager = new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle(this.Context, GetPath("Manager"));
                }
                return this._Manager;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle _Manager;
        /// <summary>
        /// There are no comments for PersonMetadata in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> PersonMetadata
        {
            get
            {
                if (!this.IsComposable)
                {
                    throw new global::System.NotSupportedException("The previous function is not composable.");
                }
                if ((this._PersonMetadata == null))
                {
                    this._PersonMetadata = Context.CreateQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata>(GetPath("PersonMetadata"));
                }
                return this._PersonMetadata;
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> _PersonMetadata;
    }
    /// <summary>
    /// There are no comments for SpecialEmployee in the schema.
    /// </summary>
    /// <KeyProperties>
    /// PersonId
    /// </KeyProperties>
    [global::Microsoft.OData.Client.Key("PersonId")]
    public partial class SpecialEmployee : Employee
    {
        /// <summary>
        /// Create a new SpecialEmployee object.
        /// </summary>
        /// <param name="personId">Initial value of PersonId.</param>
        /// <param name="managersPersonId">Initial value of ManagersPersonId.</param>
        /// <param name="salary">Initial value of Salary.</param>
        /// <param name="carsVIN">Initial value of CarsVIN.</param>
        /// <param name="bonus">Initial value of Bonus.</param>
        /// <param name="isFullyVested">Initial value of IsFullyVested.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static SpecialEmployee CreateSpecialEmployee(int personId, 
                    int managersPersonId, 
                    int salary, 
                    int carsVIN, 
                    int bonus, 
                    bool isFullyVested)
        {
            SpecialEmployee specialEmployee = new SpecialEmployee();
            specialEmployee.PersonId = personId;
            specialEmployee.ManagersPersonId = managersPersonId;
            specialEmployee.Salary = salary;
            specialEmployee.CarsVIN = carsVIN;
            specialEmployee.Bonus = bonus;
            specialEmployee.IsFullyVested = isFullyVested;
            return specialEmployee;
        }
        /// <summary>
        /// There are no comments for Property CarsVIN in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int CarsVIN
        {
            get
            {
                return this._CarsVIN;
            }
            set
            {
                this.OnCarsVINChanging(value);
                this._CarsVIN = value;
                this.OnCarsVINChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _CarsVIN;
        partial void OnCarsVINChanging(int value);
        partial void OnCarsVINChanged();
        /// <summary>
        /// There are no comments for Property Bonus in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int Bonus
        {
            get
            {
                return this._Bonus;
            }
            set
            {
                this.OnBonusChanging(value);
                this._Bonus = value;
                this.OnBonusChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _Bonus;
        partial void OnBonusChanging(int value);
        partial void OnBonusChanged();
        /// <summary>
        /// There are no comments for Property IsFullyVested in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public bool IsFullyVested
        {
            get
            {
                return this._IsFullyVested;
            }
            set
            {
                this.OnIsFullyVestedChanging(value);
                this._IsFullyVested = value;
                this.OnIsFullyVestedChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private bool _IsFullyVested;
        partial void OnIsFullyVestedChanging(bool value);
        partial void OnIsFullyVestedChanged();
        /// <summary>
        /// There are no comments for Property Car in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Car Car
        {
            get
            {
                return this._Car;
            }
            set
            {
                this.OnCarChanging(value);
                this._Car = value;
                this.OnCarChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Car _Car;
        partial void OnCarChanging(global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Car value);
        partial void OnCarChanged();
    }
    /// <summary>
    /// There are no comments for ComplexWithAllPrimitiveTypes in the schema.
    /// </summary>
    public partial class ComplexWithAllPrimitiveTypes
    {
        /// <summary>
        /// Create a new ComplexWithAllPrimitiveTypes object.
        /// </summary>
        /// <param name="boolean">Initial value of Boolean.</param>
        /// <param name="byte">Initial value of Byte.</param>
        /// <param name="dateTimeOffset">Initial value of DateTimeOffset.</param>
        /// <param name="decimal">Initial value of Decimal.</param>
        /// <param name="double">Initial value of Double.</param>
        /// <param name="int16">Initial value of Int16.</param>
        /// <param name="int32">Initial value of Int32.</param>
        /// <param name="int64">Initial value of Int64.</param>
        /// <param name="sByte">Initial value of SByte.</param>
        /// <param name="single">Initial value of Single.</param>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public static ComplexWithAllPrimitiveTypes CreateComplexWithAllPrimitiveTypes(bool boolean, 
                    byte @byte, 
                    global::System.DateTimeOffset dateTimeOffset, 
                    decimal @decimal, 
                    double @double, 
                    short int16, 
                    int int32, 
                    long int64, 
                    sbyte sByte, 
                    float single)
        {
            ComplexWithAllPrimitiveTypes complexWithAllPrimitiveTypes = new ComplexWithAllPrimitiveTypes();
            complexWithAllPrimitiveTypes.Boolean = boolean;
            complexWithAllPrimitiveTypes.Byte = @byte;
            complexWithAllPrimitiveTypes.DateTimeOffset = dateTimeOffset;
            complexWithAllPrimitiveTypes.Decimal = @decimal;
            complexWithAllPrimitiveTypes.Double = @double;
            complexWithAllPrimitiveTypes.Int16 = int16;
            complexWithAllPrimitiveTypes.Int32 = int32;
            complexWithAllPrimitiveTypes.Int64 = int64;
            complexWithAllPrimitiveTypes.SByte = sByte;
            complexWithAllPrimitiveTypes.Single = single;
            return complexWithAllPrimitiveTypes;
        }
        /// <summary>
        /// There are no comments for Property Binary in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public byte[] Binary
        {
            get
            {
                return this._Binary;
            }
            set
            {
                this.OnBinaryChanging(value);
                this._Binary = value;
                this.OnBinaryChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private byte[] _Binary;
        partial void OnBinaryChanging(byte[] value);
        partial void OnBinaryChanged();
        /// <summary>
        /// There are no comments for Property Boolean in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public bool Boolean
        {
            get
            {
                return this._Boolean;
            }
            set
            {
                this.OnBooleanChanging(value);
                this._Boolean = value;
                this.OnBooleanChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private bool _Boolean;
        partial void OnBooleanChanging(bool value);
        partial void OnBooleanChanged();
        /// <summary>
        /// There are no comments for Property Byte in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public byte Byte
        {
            get
            {
                return this._Byte;
            }
            set
            {
                this.OnByteChanging(value);
                this._Byte = value;
                this.OnByteChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private byte _Byte;
        partial void OnByteChanging(byte value);
        partial void OnByteChanged();
        /// <summary>
        /// There are no comments for Property DateTimeOffset in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::System.DateTimeOffset DateTimeOffset
        {
            get
            {
                return this._DateTimeOffset;
            }
            set
            {
                this.OnDateTimeOffsetChanging(value);
                this._DateTimeOffset = value;
                this.OnDateTimeOffsetChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::System.DateTimeOffset _DateTimeOffset;
        partial void OnDateTimeOffsetChanging(global::System.DateTimeOffset value);
        partial void OnDateTimeOffsetChanged();
        /// <summary>
        /// There are no comments for Property Decimal in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public decimal Decimal
        {
            get
            {
                return this._Decimal;
            }
            set
            {
                this.OnDecimalChanging(value);
                this._Decimal = value;
                this.OnDecimalChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private decimal _Decimal;
        partial void OnDecimalChanging(decimal value);
        partial void OnDecimalChanged();
        /// <summary>
        /// There are no comments for Property Double in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public double Double
        {
            get
            {
                return this._Double;
            }
            set
            {
                this.OnDoubleChanging(value);
                this._Double = value;
                this.OnDoubleChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private double _Double;
        partial void OnDoubleChanging(double value);
        partial void OnDoubleChanged();
        /// <summary>
        /// There are no comments for Property Int16 in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public short Int16
        {
            get
            {
                return this._Int16;
            }
            set
            {
                this.OnInt16Changing(value);
                this._Int16 = value;
                this.OnInt16Changed();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private short _Int16;
        partial void OnInt16Changing(short value);
        partial void OnInt16Changed();
        /// <summary>
        /// There are no comments for Property Int32 in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public int Int32
        {
            get
            {
                return this._Int32;
            }
            set
            {
                this.OnInt32Changing(value);
                this._Int32 = value;
                this.OnInt32Changed();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private int _Int32;
        partial void OnInt32Changing(int value);
        partial void OnInt32Changed();
        /// <summary>
        /// There are no comments for Property Int64 in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public long Int64
        {
            get
            {
                return this._Int64;
            }
            set
            {
                this.OnInt64Changing(value);
                this._Int64 = value;
                this.OnInt64Changed();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private long _Int64;
        partial void OnInt64Changing(long value);
        partial void OnInt64Changed();
        /// <summary>
        /// There are no comments for Property SByte in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public sbyte SByte
        {
            get
            {
                return this._SByte;
            }
            set
            {
                this.OnSByteChanging(value);
                this._SByte = value;
                this.OnSByteChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private sbyte _SByte;
        partial void OnSByteChanging(sbyte value);
        partial void OnSByteChanged();
        /// <summary>
        /// There are no comments for Property String in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public string String
        {
            get
            {
                return this._String;
            }
            set
            {
                this.OnStringChanging(value);
                this._String = value;
                this.OnStringChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private string _String;
        partial void OnStringChanging(string value);
        partial void OnStringChanged();
        /// <summary>
        /// There are no comments for Property Single in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public float Single
        {
            get
            {
                return this._Single;
            }
            set
            {
                this.OnSingleChanging(value);
                this._Single = value;
                this.OnSingleChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private float _Single;
        partial void OnSingleChanging(float value);
        partial void OnSingleChanged();
        /// <summary>
        /// There are no comments for Property GeographyPoint in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeographyPoint GeographyPoint
        {
            get
            {
                return this._GeographyPoint;
            }
            set
            {
                this.OnGeographyPointChanging(value);
                this._GeographyPoint = value;
                this.OnGeographyPointChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeographyPoint _GeographyPoint;
        partial void OnGeographyPointChanging(global::Microsoft.Spatial.GeographyPoint value);
        partial void OnGeographyPointChanged();
        /// <summary>
        /// There are no comments for Property GeometryPoint in the schema.
        /// </summary>
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        public global::Microsoft.Spatial.GeometryPoint GeometryPoint
        {
            get
            {
                return this._GeometryPoint;
            }
            set
            {
                this.OnGeometryPointChanging(value);
                this._GeometryPoint = value;
                this.OnGeometryPointChanged();
            }
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.OData.Client.Design.T4", "2.2.0")]
        private global::Microsoft.Spatial.GeometryPoint _GeometryPoint;
        partial void OnGeometryPointChanging(global::Microsoft.Spatial.GeometryPoint value);
        partial void OnGeometryPointChanged();
    }
    /// <summary>
    /// Class containing all extension methods
    /// </summary>
    public static class ExtensionMethods
    {
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialTypes as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialTypesSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialTypesSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialTypes> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialTypesSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialTypes as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialTypesSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="id">The value of id</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialTypesSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialTypes> source,
            int id)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "Id", id }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialTypesSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypesSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypesSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypesSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypesSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="id">The value of id</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypesSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes> source,
            int id)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "Id", id }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypesSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="customerId">The value of customerId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer> source,
            int customerId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "CustomerId", customerId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="username">The value of username</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Login> source,
            string username)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "Username", username }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LoginSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.RSAToken as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.RSATokenSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.RSATokenSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.RSAToken> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.RSATokenSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.RSAToken as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.RSATokenSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="serial">The value of serial</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.RSATokenSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.RSAToken> source,
            string serial)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "Serial", serial }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.RSATokenSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageView as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageViewSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageViewSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageView> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageViewSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageView as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageViewSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="pageViewId">The value of pageViewId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageViewSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageView> source,
            int pageViewId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "PageViewId", pageViewId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageViewSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLogin as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLoginSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLoginSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLogin> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLoginSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLogin as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLoginSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="username">The value of username</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLoginSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLogin> source,
            string username)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "Username", username }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LastLoginSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="fromUsername">The value of fromUsername</param>
        /// <param name="messageId">The value of messageId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Message> source,
            string fromUsername, 
            int messageId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "FromUsername", fromUsername }, 
                { "MessageId", messageId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachment as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachmentSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachmentSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachment> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachmentSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachment as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachmentSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="attachmentId">The value of attachmentId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachmentSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachment> source,
            global::System.Guid attachmentId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "AttachmentId", attachmentId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MessageAttachmentSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="orderId">The value of orderId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Order> source,
            int orderId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "OrderId", orderId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLine as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLineSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLineSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLine> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLineSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLine as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLineSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="orderId">The value of orderId</param>
        /// <param name="productId">The value of productId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLineSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLine> source,
            int orderId, 
            int productId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "OrderId", orderId }, 
                { "ProductId", productId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLineSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="productId">The value of productId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product> source,
            int productId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "ProductId", productId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetail as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetail> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetail as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="productId">The value of productId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetail> source,
            int productId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "ProductId", productId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductDetailSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReviewSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReviewSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReviewSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReviewSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="productId">The value of productId</param>
        /// <param name="reviewId">The value of reviewId</param>
        /// <param name="revisionId">The value of revisionId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReviewSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReview> source,
            int productId, 
            int reviewId, 
            string revisionId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "ProductId", productId }, 
                { "ReviewId", reviewId }, 
                { "RevisionId", revisionId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductReviewSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhotoSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhotoSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhotoSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhotoSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="photoId">The value of photoId</param>
        /// <param name="productId">The value of productId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhotoSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhoto> source,
            int photoId, 
            int productId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "PhotoId", photoId }, 
                { "ProductId", productId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPhotoSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfo as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfoSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfoSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfo> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfoSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfo as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfoSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="customerInfoId">The value of customerInfoId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfoSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfo> source,
            int customerInfoId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "CustomerInfoId", customerInfoId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CustomerInfoSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="computerId">The value of computerId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer> source,
            int computerId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "ComputerId", computerId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetail as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetailSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetailSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetail> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetailSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetail as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetailSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="computerDetailId">The value of computerDetailId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetailSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetail> source,
            int computerDetailId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "ComputerDetailId", computerDetailId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetailSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Driver as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DriverSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DriverSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Driver> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DriverSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Driver as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DriverSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="name">The value of name</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DriverSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Driver> source,
            string name)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "Name", name }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DriverSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.License as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LicenseSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LicenseSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.License> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LicenseSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.License as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LicenseSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="name">The value of name</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LicenseSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.License> source,
            string name)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "Name", name }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.LicenseSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MappedEntityType as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MappedEntityTypeSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MappedEntityTypeSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MappedEntityType> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MappedEntityTypeSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MappedEntityType as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MappedEntityTypeSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="id">The value of id</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MappedEntityTypeSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MappedEntityType> source,
            int id)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "Id", id }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.MappedEntityTypeSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Car as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CarSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CarSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Car> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CarSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Car as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CarSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="vIN">The value of vIN</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CarSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Car> source,
            int vIN)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "VIN", vIN }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.CarSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="personId">The value of personId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person> source,
            int personId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "PersonId", personId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadataSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadataSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadataSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadataSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="personMetadataId">The value of personMetadataId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadataSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadata> source,
            int personMetadataId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "PersonMetadataId", personMetadataId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PersonMetadataSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_Simple as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_SimpleSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_SimpleSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_Simple> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_SimpleSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_Simple as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_SimpleSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="id">The value of id</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_SimpleSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_Simple> source,
            int id)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "Id", id }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_SimpleSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Cast an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes to its derived type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_Simple
        /// </summary>
        /// <param name="source">source entity</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_SimpleSingle CastToAllSpatialCollectionTypes_Simple(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes> source)
        {
            global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_Simple> query = source.CastTo<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_Simple>();
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AllSpatialCollectionTypes_SimpleSingle(source.Context, query.GetPath(null));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageView as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageViewSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageViewSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageView> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageViewSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageView as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageViewSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="pageViewId">The value of pageViewId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageViewSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageView> source,
            int pageViewId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "PageViewId", pageViewId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageViewSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Cast an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageView to its derived type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageView
        /// </summary>
        /// <param name="source">source entity</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageViewSingle CastToProductPageView(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.PageView> source)
        {
            global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageView> query = source.CastTo<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageView>();
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ProductPageViewSingle(source.Context, query.GetPath(null));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLineSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLineSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLineSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLineSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="orderId">The value of orderId</param>
        /// <param name="productId">The value of productId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLineSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine> source,
            int orderId, 
            int productId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "OrderId", orderId }, 
                { "ProductId", productId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLineSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Cast an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLine to its derived type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine
        /// </summary>
        /// <param name="source">source entity</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLineSingle CastToBackOrderLine(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLine> source)
        {
            global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine> query = source.CastTo<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine>();
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLineSingle(source.Context, query.GetPath(null));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2 as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2Single specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2Single ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2Single(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2 as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2Single specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="orderId">The value of orderId</param>
        /// <param name="productId">The value of productId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2Single ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2> source,
            int orderId, 
            int productId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "OrderId", orderId }, 
                { "ProductId", productId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2Single(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Cast an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine to its derived type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2
        /// </summary>
        /// <param name="source">source entity</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2Single CastToBackOrderLine2(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine> source)
        {
            global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2> query = source.CastTo<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2>();
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2Single(source.Context, query.GetPath(null));
        }
        /// <summary>
        /// Cast an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLine to its derived type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2
        /// </summary>
        /// <param name="source">source entity</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2Single CastToBackOrderLine2(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.OrderLine> source)
        {
            global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2> query = source.CastTo<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2>();
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.BackOrderLine2Single(source.Context, query.GetPath(null));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProduct as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProductSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProductSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProduct> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProductSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProduct as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProductSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="productId">The value of productId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProductSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProduct> source,
            int productId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "ProductId", productId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProductSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Cast an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product to its derived type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProduct
        /// </summary>
        /// <param name="source">source entity</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProductSingle CastToDiscontinuedProduct(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Product> source)
        {
            global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProduct> query = source.CastTo<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProduct>();
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.DiscontinuedProductSingle(source.Context, query.GetPath(null));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Contractor as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContractorSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContractorSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Contractor> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContractorSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Contractor as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContractorSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="personId">The value of personId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContractorSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Contractor> source,
            int personId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "PersonId", personId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContractorSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Cast an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person to its derived type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Contractor
        /// </summary>
        /// <param name="source">source entity</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContractorSingle CastToContractor(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person> source)
        {
            global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Contractor> query = source.CastTo<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Contractor>();
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ContractorSingle(source.Context, query.GetPath(null));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="personId">The value of personId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee> source,
            int personId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "PersonId", personId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Cast an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person to its derived type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee
        /// </summary>
        /// <param name="source">source entity</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle CastToEmployee(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person> source)
        {
            global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee> query = source.CastTo<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee>();
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.EmployeeSingle(source.Context, query.GetPath(null));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployeeSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="keys">dictionary with the names and values of keys</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployeeSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee> source, global::System.Collections.Generic.Dictionary<string, object> keys)
        {
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployeeSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Get an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee as global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployeeSingle specified by key from an entity set
        /// </summary>
        /// <param name="source">source entity set</param>
        /// <param name="personId">The value of personId</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployeeSingle ByKey(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee> source,
            int personId)
        {
            global::System.Collections.Generic.Dictionary<string, object> keys = new global::System.Collections.Generic.Dictionary<string, object>
            {
                { "PersonId", personId }
            };
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployeeSingle(source.Context, source.GetKeyPath(global::Microsoft.OData.Client.Serializer.GetKeyString(source.Context, keys)));
        }
        /// <summary>
        /// Cast an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee to its derived type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee
        /// </summary>
        /// <param name="source">source entity</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployeeSingle CastToSpecialEmployee(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee> source)
        {
            global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee> query = source.CastTo<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee>();
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployeeSingle(source.Context, query.GetPath(null));
        }
        /// <summary>
        /// Cast an entity of type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person to its derived type global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee
        /// </summary>
        /// <param name="source">source entity</param>
        public static global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployeeSingle CastToSpecialEmployee(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Person> source)
        {
            global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee> query = source.CastTo<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee>();
            return new global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployeeSingle(source.Context, query.GetPath(null));
        }
        /// <summary>
        /// There are no comments for IncreaseSalaries in the schema.
        /// </summary>
        public static global::Microsoft.OData.Client.DataServiceActionQuery IncreaseSalaries(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee> source, int n)
        {
            if (!source.IsComposable)
            {
                throw new global::System.NotSupportedException("The previous function is not composable.");
            }

            return new global::Microsoft.OData.Client.DataServiceActionQuery(source.Context, source.AppendRequestUri("Microsoft.Test.OData.Services.AstoriaDefaultService.IncreaseSalaries"), new global::Microsoft.OData.Client.BodyOperationParameter("n", n));
        }
        /// <summary>
        /// There are no comments for IncreaseSalaries in the schema.
        /// </summary>
        public static global::Microsoft.OData.Client.DataServiceActionQuery IncreaseSalaries(this global::Microsoft.OData.Client.DataServiceQuery<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee> source, int n)
        {
            if (!source.IsComposable)
            {
                throw new global::System.NotSupportedException("The previous function is not composable.");
            }

            return new global::Microsoft.OData.Client.DataServiceActionQuery(source.Context, source.AppendRequestUri("Microsoft.Test.OData.Services.AstoriaDefaultService.IncreaseSalaries"), new global::Microsoft.OData.Client.BodyOperationParameter("n", n));
        }
        /// <summary>
        /// There are no comments for Sack in the schema.
        /// </summary>
        public static global::Microsoft.OData.Client.DataServiceActionQuery Sack(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Employee> source)
        {
            if (!source.IsComposable)
            {
                throw new global::System.NotSupportedException("The previous function is not composable.");
            }

            return new global::Microsoft.OData.Client.DataServiceActionQuery(source.Context, source.AppendRequestUri("Microsoft.Test.OData.Services.AstoriaDefaultService.Sack"));
        }
        /// <summary>
        /// There are no comments for Sack in the schema.
        /// </summary>
        public static global::Microsoft.OData.Client.DataServiceActionQuery Sack(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.SpecialEmployee> source)
        {
            if (!source.IsComposable)
            {
                throw new global::System.NotSupportedException("The previous function is not composable.");
            }

            return new global::Microsoft.OData.Client.DataServiceActionQuery(source.Context, source.AppendRequestUri("Microsoft.Test.OData.Services.AstoriaDefaultService.Sack"));
        }
        /// <summary>
        /// There are no comments for GetComputer in the schema.
        /// </summary>
        public static global::Microsoft.OData.Client.DataServiceActionQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer> GetComputer(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer> source)
        {
            if (!source.IsComposable)
            {
                throw new global::System.NotSupportedException("The previous function is not composable.");
            }

            return new global::Microsoft.OData.Client.DataServiceActionQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Computer>(source.Context, source.AppendRequestUri("Microsoft.Test.OData.Services.AstoriaDefaultService.GetComputer"));
        }
        /// <summary>
        /// There are no comments for ChangeCustomerAuditInfo in the schema.
        /// </summary>
        public static global::Microsoft.OData.Client.DataServiceActionQuery ChangeCustomerAuditInfo(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.Customer> source, global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.AuditInfo auditInfo)
        {
            if (!source.IsComposable)
            {
                throw new global::System.NotSupportedException("The previous function is not composable.");
            }

            return new global::Microsoft.OData.Client.DataServiceActionQuery(source.Context, source.AppendRequestUri("Microsoft.Test.OData.Services.AstoriaDefaultService.ChangeCustomerAuditInfo"), new global::Microsoft.OData.Client.BodyOperationParameter("auditInfo", auditInfo));
        }
        /// <summary>
        /// There are no comments for ResetComputerDetailsSpecifications in the schema.
        /// </summary>
        public static global::Microsoft.OData.Client.DataServiceActionQuery ResetComputerDetailsSpecifications(this global::Microsoft.OData.Client.DataServiceQuerySingle<global::Microsoft.Test.OData.Services.TestServices.AstoriaDefaultServiceReference.ComputerDetail> source, global::System.Collections.Generic.ICollection<string> specifications, global::System.DateTimeOffset purchaseTime)
        {
            if (!source.IsComposable)
            {
                throw new global::System.NotSupportedException("The previous function is not composable.");
            }

            return new global::Microsoft.OData.Client.DataServiceActionQuery(source.Context, source.AppendRequestUri("Microsoft.Test.OData.Services.AstoriaDefaultService.ResetComputerDetailsSpecifications"), new global::Microsoft.OData.Client.BodyOperationParameter("specifications", specifications),
                    new global::Microsoft.OData.Client.BodyOperationParameter("purchaseTime", purchaseTime));
        }
    }
}

