#pragma warning disable 1591
//------------------------------------------------------------------------------
// <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>
//------------------------------------------------------------------------------

namespace MrCMS.Web.Apps.Ecommerce.Areas.Admin.Services.NopImport.Nop190
{
	using System.Data.Linq;
	using System.Data.Linq.Mapping;
	using System.Data;
	using System.Collections.Generic;
	using System.Reflection;
	using System.Linq;
	using System.Linq.Expressions;
	using System.ComponentModel;
	using System;
	
	
	[global::System.Data.Linq.Mapping.DatabaseAttribute(Name="nop-1.90")]
	public partial class Nop190DataContext : System.Data.Linq.DataContext
	{
		
		private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();
		
    #region Extensibility Method Definitions
    partial void OnCreated();
    partial void InsertNop190_ACL(Nop190_ACL instance);
    partial void UpdateNop190_ACL(Nop190_ACL instance);
    partial void DeleteNop190_ACL(Nop190_ACL instance);
    partial void InsertNop190_Warehouse(Nop190_Warehouse instance);
    partial void UpdateNop190_Warehouse(Nop190_Warehouse instance);
    partial void DeleteNop190_Warehouse(Nop190_Warehouse instance);
    partial void InsertNop190_ACLPerObject(Nop190_ACLPerObject instance);
    partial void UpdateNop190_ACLPerObject(Nop190_ACLPerObject instance);
    partial void DeleteNop190_ACLPerObject(Nop190_ACLPerObject instance);
    partial void InsertNop190_ActivityLog(Nop190_ActivityLog instance);
    partial void UpdateNop190_ActivityLog(Nop190_ActivityLog instance);
    partial void DeleteNop190_ActivityLog(Nop190_ActivityLog instance);
    partial void InsertNop190_ActivityLogType(Nop190_ActivityLogType instance);
    partial void UpdateNop190_ActivityLogType(Nop190_ActivityLogType instance);
    partial void DeleteNop190_ActivityLogType(Nop190_ActivityLogType instance);
    partial void InsertNop190_Address(Nop190_Address instance);
    partial void UpdateNop190_Address(Nop190_Address instance);
    partial void DeleteNop190_Address(Nop190_Address instance);
    partial void InsertNop190_Affiliate(Nop190_Affiliate instance);
    partial void UpdateNop190_Affiliate(Nop190_Affiliate instance);
    partial void DeleteNop190_Affiliate(Nop190_Affiliate instance);
    partial void InsertNop190_BannedIpAddress(Nop190_BannedIpAddress instance);
    partial void UpdateNop190_BannedIpAddress(Nop190_BannedIpAddress instance);
    partial void DeleteNop190_BannedIpAddress(Nop190_BannedIpAddress instance);
    partial void InsertNop190_BannedIpNetwork(Nop190_BannedIpNetwork instance);
    partial void UpdateNop190_BannedIpNetwork(Nop190_BannedIpNetwork instance);
    partial void DeleteNop190_BannedIpNetwork(Nop190_BannedIpNetwork instance);
    partial void InsertNop190_BlogComment(Nop190_BlogComment instance);
    partial void UpdateNop190_BlogComment(Nop190_BlogComment instance);
    partial void DeleteNop190_BlogComment(Nop190_BlogComment instance);
    partial void InsertNop190_BlogPost(Nop190_BlogPost instance);
    partial void UpdateNop190_BlogPost(Nop190_BlogPost instance);
    partial void DeleteNop190_BlogPost(Nop190_BlogPost instance);
    partial void InsertNop190_Campaign(Nop190_Campaign instance);
    partial void UpdateNop190_Campaign(Nop190_Campaign instance);
    partial void DeleteNop190_Campaign(Nop190_Campaign instance);
    partial void InsertNop190_Category(Nop190_Category instance);
    partial void UpdateNop190_Category(Nop190_Category instance);
    partial void DeleteNop190_Category(Nop190_Category instance);
    partial void InsertNop190_Category_Discount_Mapping(Nop190_Category_Discount_Mapping instance);
    partial void UpdateNop190_Category_Discount_Mapping(Nop190_Category_Discount_Mapping instance);
    partial void DeleteNop190_Category_Discount_Mapping(Nop190_Category_Discount_Mapping instance);
    partial void InsertNop190_CategoryLocalized(Nop190_CategoryLocalized instance);
    partial void UpdateNop190_CategoryLocalized(Nop190_CategoryLocalized instance);
    partial void DeleteNop190_CategoryLocalized(Nop190_CategoryLocalized instance);
    partial void InsertNop190_CategoryTemplate(Nop190_CategoryTemplate instance);
    partial void UpdateNop190_CategoryTemplate(Nop190_CategoryTemplate instance);
    partial void DeleteNop190_CategoryTemplate(Nop190_CategoryTemplate instance);
    partial void InsertNop190_CheckoutAttribute(Nop190_CheckoutAttribute instance);
    partial void UpdateNop190_CheckoutAttribute(Nop190_CheckoutAttribute instance);
    partial void DeleteNop190_CheckoutAttribute(Nop190_CheckoutAttribute instance);
    partial void InsertNop190_CheckoutAttributeLocalized(Nop190_CheckoutAttributeLocalized instance);
    partial void UpdateNop190_CheckoutAttributeLocalized(Nop190_CheckoutAttributeLocalized instance);
    partial void DeleteNop190_CheckoutAttributeLocalized(Nop190_CheckoutAttributeLocalized instance);
    partial void InsertNop190_CheckoutAttributeValue(Nop190_CheckoutAttributeValue instance);
    partial void UpdateNop190_CheckoutAttributeValue(Nop190_CheckoutAttributeValue instance);
    partial void DeleteNop190_CheckoutAttributeValue(Nop190_CheckoutAttributeValue instance);
    partial void InsertNop190_CheckoutAttributeValueLocalized(Nop190_CheckoutAttributeValueLocalized instance);
    partial void UpdateNop190_CheckoutAttributeValueLocalized(Nop190_CheckoutAttributeValueLocalized instance);
    partial void DeleteNop190_CheckoutAttributeValueLocalized(Nop190_CheckoutAttributeValueLocalized instance);
    partial void InsertNop190_Country(Nop190_Country instance);
    partial void UpdateNop190_Country(Nop190_Country instance);
    partial void DeleteNop190_Country(Nop190_Country instance);
    partial void InsertNop190_CreditCardType(Nop190_CreditCardType instance);
    partial void UpdateNop190_CreditCardType(Nop190_CreditCardType instance);
    partial void DeleteNop190_CreditCardType(Nop190_CreditCardType instance);
    partial void InsertNop190_CrossSellProduct(Nop190_CrossSellProduct instance);
    partial void UpdateNop190_CrossSellProduct(Nop190_CrossSellProduct instance);
    partial void DeleteNop190_CrossSellProduct(Nop190_CrossSellProduct instance);
    partial void InsertNop190_Currency(Nop190_Currency instance);
    partial void UpdateNop190_Currency(Nop190_Currency instance);
    partial void DeleteNop190_Currency(Nop190_Currency instance);
    partial void InsertNop190_Customer(Nop190_Customer instance);
    partial void UpdateNop190_Customer(Nop190_Customer instance);
    partial void DeleteNop190_Customer(Nop190_Customer instance);
    partial void InsertNop190_Customer_CustomerRole_Mapping(Nop190_Customer_CustomerRole_Mapping instance);
    partial void UpdateNop190_Customer_CustomerRole_Mapping(Nop190_Customer_CustomerRole_Mapping instance);
    partial void DeleteNop190_Customer_CustomerRole_Mapping(Nop190_Customer_CustomerRole_Mapping instance);
    partial void InsertNop190_CustomerAction(Nop190_CustomerAction instance);
    partial void UpdateNop190_CustomerAction(Nop190_CustomerAction instance);
    partial void DeleteNop190_CustomerAction(Nop190_CustomerAction instance);
    partial void InsertNop190_CustomerAttribute(Nop190_CustomerAttribute instance);
    partial void UpdateNop190_CustomerAttribute(Nop190_CustomerAttribute instance);
    partial void DeleteNop190_CustomerAttribute(Nop190_CustomerAttribute instance);
    partial void InsertNop190_CustomerRole(Nop190_CustomerRole instance);
    partial void UpdateNop190_CustomerRole(Nop190_CustomerRole instance);
    partial void DeleteNop190_CustomerRole(Nop190_CustomerRole instance);
    partial void InsertNop190_CustomerRole_Discount_Mapping(Nop190_CustomerRole_Discount_Mapping instance);
    partial void UpdateNop190_CustomerRole_Discount_Mapping(Nop190_CustomerRole_Discount_Mapping instance);
    partial void DeleteNop190_CustomerRole_Discount_Mapping(Nop190_CustomerRole_Discount_Mapping instance);
    partial void InsertNop190_CustomerRole_ProductPrice(Nop190_CustomerRole_ProductPrice instance);
    partial void UpdateNop190_CustomerRole_ProductPrice(Nop190_CustomerRole_ProductPrice instance);
    partial void DeleteNop190_CustomerRole_ProductPrice(Nop190_CustomerRole_ProductPrice instance);
    partial void InsertNop190_CustomerSession(Nop190_CustomerSession instance);
    partial void UpdateNop190_CustomerSession(Nop190_CustomerSession instance);
    partial void DeleteNop190_CustomerSession(Nop190_CustomerSession instance);
    partial void InsertNop190_Discount(Nop190_Discount instance);
    partial void UpdateNop190_Discount(Nop190_Discount instance);
    partial void DeleteNop190_Discount(Nop190_Discount instance);
    partial void InsertNop190_DiscountRestriction(Nop190_DiscountRestriction instance);
    partial void UpdateNop190_DiscountRestriction(Nop190_DiscountRestriction instance);
    partial void DeleteNop190_DiscountRestriction(Nop190_DiscountRestriction instance);
    partial void InsertNop190_DiscountUsageHistory(Nop190_DiscountUsageHistory instance);
    partial void UpdateNop190_DiscountUsageHistory(Nop190_DiscountUsageHistory instance);
    partial void DeleteNop190_DiscountUsageHistory(Nop190_DiscountUsageHistory instance);
    partial void InsertNop190_Download(Nop190_Download instance);
    partial void UpdateNop190_Download(Nop190_Download instance);
    partial void DeleteNop190_Download(Nop190_Download instance);
    partial void InsertNop190_EmailAccount(Nop190_EmailAccount instance);
    partial void UpdateNop190_EmailAccount(Nop190_EmailAccount instance);
    partial void DeleteNop190_EmailAccount(Nop190_EmailAccount instance);
    partial void InsertNop190_Forums_Forum(Nop190_Forums_Forum instance);
    partial void UpdateNop190_Forums_Forum(Nop190_Forums_Forum instance);
    partial void DeleteNop190_Forums_Forum(Nop190_Forums_Forum instance);
    partial void InsertNop190_Forums_Group(Nop190_Forums_Group instance);
    partial void UpdateNop190_Forums_Group(Nop190_Forums_Group instance);
    partial void DeleteNop190_Forums_Group(Nop190_Forums_Group instance);
    partial void InsertNop190_Forums_Post(Nop190_Forums_Post instance);
    partial void UpdateNop190_Forums_Post(Nop190_Forums_Post instance);
    partial void DeleteNop190_Forums_Post(Nop190_Forums_Post instance);
    partial void InsertNop190_Forums_PrivateMessage(Nop190_Forums_PrivateMessage instance);
    partial void UpdateNop190_Forums_PrivateMessage(Nop190_Forums_PrivateMessage instance);
    partial void DeleteNop190_Forums_PrivateMessage(Nop190_Forums_PrivateMessage instance);
    partial void InsertNop190_Forums_Subscription(Nop190_Forums_Subscription instance);
    partial void UpdateNop190_Forums_Subscription(Nop190_Forums_Subscription instance);
    partial void DeleteNop190_Forums_Subscription(Nop190_Forums_Subscription instance);
    partial void InsertNop190_Forums_Topic(Nop190_Forums_Topic instance);
    partial void UpdateNop190_Forums_Topic(Nop190_Forums_Topic instance);
    partial void DeleteNop190_Forums_Topic(Nop190_Forums_Topic instance);
    partial void InsertNop190_GiftCard(Nop190_GiftCard instance);
    partial void UpdateNop190_GiftCard(Nop190_GiftCard instance);
    partial void DeleteNop190_GiftCard(Nop190_GiftCard instance);
    partial void InsertNop190_GiftCardUsageHistory(Nop190_GiftCardUsageHistory instance);
    partial void UpdateNop190_GiftCardUsageHistory(Nop190_GiftCardUsageHistory instance);
    partial void DeleteNop190_GiftCardUsageHistory(Nop190_GiftCardUsageHistory instance);
    partial void InsertNop190_Language(Nop190_Language instance);
    partial void UpdateNop190_Language(Nop190_Language instance);
    partial void DeleteNop190_Language(Nop190_Language instance);
    partial void InsertNop190_LocaleStringResource(Nop190_LocaleStringResource instance);
    partial void UpdateNop190_LocaleStringResource(Nop190_LocaleStringResource instance);
    partial void DeleteNop190_LocaleStringResource(Nop190_LocaleStringResource instance);
    partial void InsertNop190_Log(Nop190_Log instance);
    partial void UpdateNop190_Log(Nop190_Log instance);
    partial void DeleteNop190_Log(Nop190_Log instance);
    partial void InsertNop190_Manufacturer(Nop190_Manufacturer instance);
    partial void UpdateNop190_Manufacturer(Nop190_Manufacturer instance);
    partial void DeleteNop190_Manufacturer(Nop190_Manufacturer instance);
    partial void InsertNop190_ManufacturerLocalized(Nop190_ManufacturerLocalized instance);
    partial void UpdateNop190_ManufacturerLocalized(Nop190_ManufacturerLocalized instance);
    partial void DeleteNop190_ManufacturerLocalized(Nop190_ManufacturerLocalized instance);
    partial void InsertNop190_ManufacturerTemplate(Nop190_ManufacturerTemplate instance);
    partial void UpdateNop190_ManufacturerTemplate(Nop190_ManufacturerTemplate instance);
    partial void DeleteNop190_ManufacturerTemplate(Nop190_ManufacturerTemplate instance);
    partial void InsertNop190_MeasureDimension(Nop190_MeasureDimension instance);
    partial void UpdateNop190_MeasureDimension(Nop190_MeasureDimension instance);
    partial void DeleteNop190_MeasureDimension(Nop190_MeasureDimension instance);
    partial void InsertNop190_MeasureWeight(Nop190_MeasureWeight instance);
    partial void UpdateNop190_MeasureWeight(Nop190_MeasureWeight instance);
    partial void DeleteNop190_MeasureWeight(Nop190_MeasureWeight instance);
    partial void InsertNop190_MessageTemplate(Nop190_MessageTemplate instance);
    partial void UpdateNop190_MessageTemplate(Nop190_MessageTemplate instance);
    partial void DeleteNop190_MessageTemplate(Nop190_MessageTemplate instance);
    partial void InsertNop190_MessageTemplateLocalized(Nop190_MessageTemplateLocalized instance);
    partial void UpdateNop190_MessageTemplateLocalized(Nop190_MessageTemplateLocalized instance);
    partial void DeleteNop190_MessageTemplateLocalized(Nop190_MessageTemplateLocalized instance);
    partial void InsertNop190_New(Nop190_New instance);
    partial void UpdateNop190_New(Nop190_New instance);
    partial void DeleteNop190_New(Nop190_New instance);
    partial void InsertNop190_NewsComment(Nop190_NewsComment instance);
    partial void UpdateNop190_NewsComment(Nop190_NewsComment instance);
    partial void DeleteNop190_NewsComment(Nop190_NewsComment instance);
    partial void InsertNop190_NewsLetterSubscription(Nop190_NewsLetterSubscription instance);
    partial void UpdateNop190_NewsLetterSubscription(Nop190_NewsLetterSubscription instance);
    partial void DeleteNop190_NewsLetterSubscription(Nop190_NewsLetterSubscription instance);
    partial void InsertNop190_Order(Nop190_Order instance);
    partial void UpdateNop190_Order(Nop190_Order instance);
    partial void DeleteNop190_Order(Nop190_Order instance);
    partial void InsertNop190_OrderNote(Nop190_OrderNote instance);
    partial void UpdateNop190_OrderNote(Nop190_OrderNote instance);
    partial void DeleteNop190_OrderNote(Nop190_OrderNote instance);
    partial void InsertNop190_OrderProductVariant(Nop190_OrderProductVariant instance);
    partial void UpdateNop190_OrderProductVariant(Nop190_OrderProductVariant instance);
    partial void DeleteNop190_OrderProductVariant(Nop190_OrderProductVariant instance);
    partial void InsertNop190_PaymentMethod(Nop190_PaymentMethod instance);
    partial void UpdateNop190_PaymentMethod(Nop190_PaymentMethod instance);
    partial void DeleteNop190_PaymentMethod(Nop190_PaymentMethod instance);
    partial void InsertNop190_PaymentMethod_RestrictedCountry(Nop190_PaymentMethod_RestrictedCountry instance);
    partial void UpdateNop190_PaymentMethod_RestrictedCountry(Nop190_PaymentMethod_RestrictedCountry instance);
    partial void DeleteNop190_PaymentMethod_RestrictedCountry(Nop190_PaymentMethod_RestrictedCountry instance);
    partial void InsertNop190_Picture(Nop190_Picture instance);
    partial void UpdateNop190_Picture(Nop190_Picture instance);
    partial void DeleteNop190_Picture(Nop190_Picture instance);
    partial void InsertNop190_Poll(Nop190_Poll instance);
    partial void UpdateNop190_Poll(Nop190_Poll instance);
    partial void DeleteNop190_Poll(Nop190_Poll instance);
    partial void InsertNop190_PollAnswer(Nop190_PollAnswer instance);
    partial void UpdateNop190_PollAnswer(Nop190_PollAnswer instance);
    partial void DeleteNop190_PollAnswer(Nop190_PollAnswer instance);
    partial void InsertNop190_PollVotingRecord(Nop190_PollVotingRecord instance);
    partial void UpdateNop190_PollVotingRecord(Nop190_PollVotingRecord instance);
    partial void DeleteNop190_PollVotingRecord(Nop190_PollVotingRecord instance);
    partial void InsertNop190_Pricelist(Nop190_Pricelist instance);
    partial void UpdateNop190_Pricelist(Nop190_Pricelist instance);
    partial void DeleteNop190_Pricelist(Nop190_Pricelist instance);
    partial void InsertNop190_Product(Nop190_Product instance);
    partial void UpdateNop190_Product(Nop190_Product instance);
    partial void DeleteNop190_Product(Nop190_Product instance);
    partial void InsertNop190_Product_Category_Mapping(Nop190_Product_Category_Mapping instance);
    partial void UpdateNop190_Product_Category_Mapping(Nop190_Product_Category_Mapping instance);
    partial void DeleteNop190_Product_Category_Mapping(Nop190_Product_Category_Mapping instance);
    partial void InsertNop190_Product_Manufacturer_Mapping(Nop190_Product_Manufacturer_Mapping instance);
    partial void UpdateNop190_Product_Manufacturer_Mapping(Nop190_Product_Manufacturer_Mapping instance);
    partial void DeleteNop190_Product_Manufacturer_Mapping(Nop190_Product_Manufacturer_Mapping instance);
    partial void InsertNop190_Product_SpecificationAttribute_Mapping(Nop190_Product_SpecificationAttribute_Mapping instance);
    partial void UpdateNop190_Product_SpecificationAttribute_Mapping(Nop190_Product_SpecificationAttribute_Mapping instance);
    partial void DeleteNop190_Product_SpecificationAttribute_Mapping(Nop190_Product_SpecificationAttribute_Mapping instance);
    partial void InsertNop190_ProductAttribute(Nop190_ProductAttribute instance);
    partial void UpdateNop190_ProductAttribute(Nop190_ProductAttribute instance);
    partial void DeleteNop190_ProductAttribute(Nop190_ProductAttribute instance);
    partial void InsertNop190_ProductAttributeLocalized(Nop190_ProductAttributeLocalized instance);
    partial void UpdateNop190_ProductAttributeLocalized(Nop190_ProductAttributeLocalized instance);
    partial void DeleteNop190_ProductAttributeLocalized(Nop190_ProductAttributeLocalized instance);
    partial void InsertNop190_ProductLocalized(Nop190_ProductLocalized instance);
    partial void UpdateNop190_ProductLocalized(Nop190_ProductLocalized instance);
    partial void DeleteNop190_ProductLocalized(Nop190_ProductLocalized instance);
    partial void InsertNop190_ProductPicture(Nop190_ProductPicture instance);
    partial void UpdateNop190_ProductPicture(Nop190_ProductPicture instance);
    partial void DeleteNop190_ProductPicture(Nop190_ProductPicture instance);
    partial void InsertNop190_ProductRating(Nop190_ProductRating instance);
    partial void UpdateNop190_ProductRating(Nop190_ProductRating instance);
    partial void DeleteNop190_ProductRating(Nop190_ProductRating instance);
    partial void InsertNop190_ProductReview(Nop190_ProductReview instance);
    partial void UpdateNop190_ProductReview(Nop190_ProductReview instance);
    partial void DeleteNop190_ProductReview(Nop190_ProductReview instance);
    partial void InsertNop190_ProductReviewHelpfulness(Nop190_ProductReviewHelpfulness instance);
    partial void UpdateNop190_ProductReviewHelpfulness(Nop190_ProductReviewHelpfulness instance);
    partial void DeleteNop190_ProductReviewHelpfulness(Nop190_ProductReviewHelpfulness instance);
    partial void InsertNop190_ProductTag(Nop190_ProductTag instance);
    partial void UpdateNop190_ProductTag(Nop190_ProductTag instance);
    partial void DeleteNop190_ProductTag(Nop190_ProductTag instance);
    partial void InsertNop190_ProductTag_Product_Mapping(Nop190_ProductTag_Product_Mapping instance);
    partial void UpdateNop190_ProductTag_Product_Mapping(Nop190_ProductTag_Product_Mapping instance);
    partial void DeleteNop190_ProductTag_Product_Mapping(Nop190_ProductTag_Product_Mapping instance);
    partial void InsertNop190_ProductTemplate(Nop190_ProductTemplate instance);
    partial void UpdateNop190_ProductTemplate(Nop190_ProductTemplate instance);
    partial void DeleteNop190_ProductTemplate(Nop190_ProductTemplate instance);
    partial void InsertNop190_ProductVariant(Nop190_ProductVariant instance);
    partial void UpdateNop190_ProductVariant(Nop190_ProductVariant instance);
    partial void DeleteNop190_ProductVariant(Nop190_ProductVariant instance);
    partial void InsertNop190_ProductVariant_Discount_Mapping(Nop190_ProductVariant_Discount_Mapping instance);
    partial void UpdateNop190_ProductVariant_Discount_Mapping(Nop190_ProductVariant_Discount_Mapping instance);
    partial void DeleteNop190_ProductVariant_Discount_Mapping(Nop190_ProductVariant_Discount_Mapping instance);
    partial void InsertNop190_ProductVariant_Pricelist_Mapping(Nop190_ProductVariant_Pricelist_Mapping instance);
    partial void UpdateNop190_ProductVariant_Pricelist_Mapping(Nop190_ProductVariant_Pricelist_Mapping instance);
    partial void DeleteNop190_ProductVariant_Pricelist_Mapping(Nop190_ProductVariant_Pricelist_Mapping instance);
    partial void InsertNop190_ProductVariant_ProductAttribute_Mapping(Nop190_ProductVariant_ProductAttribute_Mapping instance);
    partial void UpdateNop190_ProductVariant_ProductAttribute_Mapping(Nop190_ProductVariant_ProductAttribute_Mapping instance);
    partial void DeleteNop190_ProductVariant_ProductAttribute_Mapping(Nop190_ProductVariant_ProductAttribute_Mapping instance);
    partial void InsertNop190_ProductVariantAttributeCombination(Nop190_ProductVariantAttributeCombination instance);
    partial void UpdateNop190_ProductVariantAttributeCombination(Nop190_ProductVariantAttributeCombination instance);
    partial void DeleteNop190_ProductVariantAttributeCombination(Nop190_ProductVariantAttributeCombination instance);
    partial void InsertNop190_ProductVariantAttributeValue(Nop190_ProductVariantAttributeValue instance);
    partial void UpdateNop190_ProductVariantAttributeValue(Nop190_ProductVariantAttributeValue instance);
    partial void DeleteNop190_ProductVariantAttributeValue(Nop190_ProductVariantAttributeValue instance);
    partial void InsertNop190_ProductVariantAttributeValueLocalized(Nop190_ProductVariantAttributeValueLocalized instance);
    partial void UpdateNop190_ProductVariantAttributeValueLocalized(Nop190_ProductVariantAttributeValueLocalized instance);
    partial void DeleteNop190_ProductVariantAttributeValueLocalized(Nop190_ProductVariantAttributeValueLocalized instance);
    partial void InsertNop190_ProductVariantLocalized(Nop190_ProductVariantLocalized instance);
    partial void UpdateNop190_ProductVariantLocalized(Nop190_ProductVariantLocalized instance);
    partial void DeleteNop190_ProductVariantLocalized(Nop190_ProductVariantLocalized instance);
    partial void InsertNop190_QBEntity(Nop190_QBEntity instance);
    partial void UpdateNop190_QBEntity(Nop190_QBEntity instance);
    partial void DeleteNop190_QBEntity(Nop190_QBEntity instance);
    partial void InsertNop190_QueuedEmail(Nop190_QueuedEmail instance);
    partial void UpdateNop190_QueuedEmail(Nop190_QueuedEmail instance);
    partial void DeleteNop190_QueuedEmail(Nop190_QueuedEmail instance);
    partial void InsertNop190_RecurringPayment(Nop190_RecurringPayment instance);
    partial void UpdateNop190_RecurringPayment(Nop190_RecurringPayment instance);
    partial void DeleteNop190_RecurringPayment(Nop190_RecurringPayment instance);
    partial void InsertNop190_RecurringPaymentHistory(Nop190_RecurringPaymentHistory instance);
    partial void UpdateNop190_RecurringPaymentHistory(Nop190_RecurringPaymentHistory instance);
    partial void DeleteNop190_RecurringPaymentHistory(Nop190_RecurringPaymentHistory instance);
    partial void InsertNop190_RelatedProduct(Nop190_RelatedProduct instance);
    partial void UpdateNop190_RelatedProduct(Nop190_RelatedProduct instance);
    partial void DeleteNop190_RelatedProduct(Nop190_RelatedProduct instance);
    partial void InsertNop190_ReturnRequest(Nop190_ReturnRequest instance);
    partial void UpdateNop190_ReturnRequest(Nop190_ReturnRequest instance);
    partial void DeleteNop190_ReturnRequest(Nop190_ReturnRequest instance);
    partial void InsertNop190_RewardPointsHistory(Nop190_RewardPointsHistory instance);
    partial void UpdateNop190_RewardPointsHistory(Nop190_RewardPointsHistory instance);
    partial void DeleteNop190_RewardPointsHistory(Nop190_RewardPointsHistory instance);
    partial void InsertNop190_SearchLog(Nop190_SearchLog instance);
    partial void UpdateNop190_SearchLog(Nop190_SearchLog instance);
    partial void DeleteNop190_SearchLog(Nop190_SearchLog instance);
    partial void InsertNop190_Setting(Nop190_Setting instance);
    partial void UpdateNop190_Setting(Nop190_Setting instance);
    partial void DeleteNop190_Setting(Nop190_Setting instance);
    partial void InsertNop190_ShippingByTotal(Nop190_ShippingByTotal instance);
    partial void UpdateNop190_ShippingByTotal(Nop190_ShippingByTotal instance);
    partial void DeleteNop190_ShippingByTotal(Nop190_ShippingByTotal instance);
    partial void InsertNop190_ShippingByWeight(Nop190_ShippingByWeight instance);
    partial void UpdateNop190_ShippingByWeight(Nop190_ShippingByWeight instance);
    partial void DeleteNop190_ShippingByWeight(Nop190_ShippingByWeight instance);
    partial void InsertNop190_ShippingByWeightAndCountry(Nop190_ShippingByWeightAndCountry instance);
    partial void UpdateNop190_ShippingByWeightAndCountry(Nop190_ShippingByWeightAndCountry instance);
    partial void DeleteNop190_ShippingByWeightAndCountry(Nop190_ShippingByWeightAndCountry instance);
    partial void InsertNop190_ShippingMethod(Nop190_ShippingMethod instance);
    partial void UpdateNop190_ShippingMethod(Nop190_ShippingMethod instance);
    partial void DeleteNop190_ShippingMethod(Nop190_ShippingMethod instance);
    partial void InsertNop190_ShippingMethod_RestrictedCountry(Nop190_ShippingMethod_RestrictedCountry instance);
    partial void UpdateNop190_ShippingMethod_RestrictedCountry(Nop190_ShippingMethod_RestrictedCountry instance);
    partial void DeleteNop190_ShippingMethod_RestrictedCountry(Nop190_ShippingMethod_RestrictedCountry instance);
    partial void InsertNop190_ShippingRateComputationMethod(Nop190_ShippingRateComputationMethod instance);
    partial void UpdateNop190_ShippingRateComputationMethod(Nop190_ShippingRateComputationMethod instance);
    partial void DeleteNop190_ShippingRateComputationMethod(Nop190_ShippingRateComputationMethod instance);
    partial void InsertNop190_ShoppingCartItem(Nop190_ShoppingCartItem instance);
    partial void UpdateNop190_ShoppingCartItem(Nop190_ShoppingCartItem instance);
    partial void DeleteNop190_ShoppingCartItem(Nop190_ShoppingCartItem instance);
    partial void InsertNop190_SMSProvider(Nop190_SMSProvider instance);
    partial void UpdateNop190_SMSProvider(Nop190_SMSProvider instance);
    partial void DeleteNop190_SMSProvider(Nop190_SMSProvider instance);
    partial void InsertNop190_SpecificationAttribute(Nop190_SpecificationAttribute instance);
    partial void UpdateNop190_SpecificationAttribute(Nop190_SpecificationAttribute instance);
    partial void DeleteNop190_SpecificationAttribute(Nop190_SpecificationAttribute instance);
    partial void InsertNop190_SpecificationAttributeLocalized(Nop190_SpecificationAttributeLocalized instance);
    partial void UpdateNop190_SpecificationAttributeLocalized(Nop190_SpecificationAttributeLocalized instance);
    partial void DeleteNop190_SpecificationAttributeLocalized(Nop190_SpecificationAttributeLocalized instance);
    partial void InsertNop190_SpecificationAttributeOption(Nop190_SpecificationAttributeOption instance);
    partial void UpdateNop190_SpecificationAttributeOption(Nop190_SpecificationAttributeOption instance);
    partial void DeleteNop190_SpecificationAttributeOption(Nop190_SpecificationAttributeOption instance);
    partial void InsertNop190_SpecificationAttributeOptionLocalized(Nop190_SpecificationAttributeOptionLocalized instance);
    partial void UpdateNop190_SpecificationAttributeOptionLocalized(Nop190_SpecificationAttributeOptionLocalized instance);
    partial void DeleteNop190_SpecificationAttributeOptionLocalized(Nop190_SpecificationAttributeOptionLocalized instance);
    partial void InsertNop190_StateProvince(Nop190_StateProvince instance);
    partial void UpdateNop190_StateProvince(Nop190_StateProvince instance);
    partial void DeleteNop190_StateProvince(Nop190_StateProvince instance);
    partial void InsertNop190_TaxCategory(Nop190_TaxCategory instance);
    partial void UpdateNop190_TaxCategory(Nop190_TaxCategory instance);
    partial void DeleteNop190_TaxCategory(Nop190_TaxCategory instance);
    partial void InsertNop190_TaxProvider(Nop190_TaxProvider instance);
    partial void UpdateNop190_TaxProvider(Nop190_TaxProvider instance);
    partial void DeleteNop190_TaxProvider(Nop190_TaxProvider instance);
    partial void InsertNop190_TaxRate(Nop190_TaxRate instance);
    partial void UpdateNop190_TaxRate(Nop190_TaxRate instance);
    partial void DeleteNop190_TaxRate(Nop190_TaxRate instance);
    partial void InsertNop190_TierPrice(Nop190_TierPrice instance);
    partial void UpdateNop190_TierPrice(Nop190_TierPrice instance);
    partial void DeleteNop190_TierPrice(Nop190_TierPrice instance);
    partial void InsertNop190_Topic(Nop190_Topic instance);
    partial void UpdateNop190_Topic(Nop190_Topic instance);
    partial void DeleteNop190_Topic(Nop190_Topic instance);
    partial void InsertNop190_TopicLocalized(Nop190_TopicLocalized instance);
    partial void UpdateNop190_TopicLocalized(Nop190_TopicLocalized instance);
    partial void DeleteNop190_TopicLocalized(Nop190_TopicLocalized instance);
    #endregion
		
		public Nop190DataContext() : 
				base(global::System.Configuration.ConfigurationManager.ConnectionStrings["nop_1_90ConnectionString"].ConnectionString, mappingSource)
		{
			OnCreated();
		}
		
		public Nop190DataContext(string connection) : 
				base(connection, mappingSource)
		{
			OnCreated();
		}
		
		public Nop190DataContext(System.Data.IDbConnection connection) : 
				base(connection, mappingSource)
		{
			OnCreated();
		}
		
		public Nop190DataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
				base(connection, mappingSource)
		{
			OnCreated();
		}
		
		public Nop190DataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
				base(connection, mappingSource)
		{
			OnCreated();
		}
		
		public System.Data.Linq.Table<Nop190_ACL> Nop190_ACLs
		{
			get
			{
				return this.GetTable<Nop190_ACL>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Warehouse> Nop190_Warehouses
		{
			get
			{
				return this.GetTable<Nop190_Warehouse>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ACLPerObject> Nop190_ACLPerObjects
		{
			get
			{
				return this.GetTable<Nop190_ACLPerObject>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ActivityLog> Nop190_ActivityLogs
		{
			get
			{
				return this.GetTable<Nop190_ActivityLog>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ActivityLogType> Nop190_ActivityLogTypes
		{
			get
			{
				return this.GetTable<Nop190_ActivityLogType>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Address> Nop190_Addresses
		{
			get
			{
				return this.GetTable<Nop190_Address>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Affiliate> Nop190_Affiliates
		{
			get
			{
				return this.GetTable<Nop190_Affiliate>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_BannedIpAddress> Nop190_BannedIpAddresses
		{
			get
			{
				return this.GetTable<Nop190_BannedIpAddress>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_BannedIpNetwork> Nop190_BannedIpNetworks
		{
			get
			{
				return this.GetTable<Nop190_BannedIpNetwork>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_BlogComment> Nop190_BlogComments
		{
			get
			{
				return this.GetTable<Nop190_BlogComment>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_BlogPost> Nop190_BlogPosts
		{
			get
			{
				return this.GetTable<Nop190_BlogPost>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Campaign> Nop190_Campaigns
		{
			get
			{
				return this.GetTable<Nop190_Campaign>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Category> Nop190_Categories
		{
			get
			{
				return this.GetTable<Nop190_Category>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Category_Discount_Mapping> Nop190_Category_Discount_Mappings
		{
			get
			{
				return this.GetTable<Nop190_Category_Discount_Mapping>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CategoryLocalized> Nop190_CategoryLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_CategoryLocalized>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CategoryTemplate> Nop190_CategoryTemplates
		{
			get
			{
				return this.GetTable<Nop190_CategoryTemplate>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CheckoutAttribute> Nop190_CheckoutAttributes
		{
			get
			{
				return this.GetTable<Nop190_CheckoutAttribute>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CheckoutAttributeLocalized> Nop190_CheckoutAttributeLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_CheckoutAttributeLocalized>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CheckoutAttributeValue> Nop190_CheckoutAttributeValues
		{
			get
			{
				return this.GetTable<Nop190_CheckoutAttributeValue>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CheckoutAttributeValueLocalized> Nop190_CheckoutAttributeValueLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_CheckoutAttributeValueLocalized>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Country> Nop190_Countries
		{
			get
			{
				return this.GetTable<Nop190_Country>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CreditCardType> Nop190_CreditCardTypes
		{
			get
			{
				return this.GetTable<Nop190_CreditCardType>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CrossSellProduct> Nop190_CrossSellProducts
		{
			get
			{
				return this.GetTable<Nop190_CrossSellProduct>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Currency> Nop190_Currencies
		{
			get
			{
				return this.GetTable<Nop190_Currency>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Customer> Nop190_Customers
		{
			get
			{
				return this.GetTable<Nop190_Customer>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Customer_CustomerRole_Mapping> Nop190_Customer_CustomerRole_Mappings
		{
			get
			{
				return this.GetTable<Nop190_Customer_CustomerRole_Mapping>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CustomerAction> Nop190_CustomerActions
		{
			get
			{
				return this.GetTable<Nop190_CustomerAction>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CustomerAttribute> Nop190_CustomerAttributes
		{
			get
			{
				return this.GetTable<Nop190_CustomerAttribute>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CustomerRole> Nop190_CustomerRoles
		{
			get
			{
				return this.GetTable<Nop190_CustomerRole>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CustomerRole_Discount_Mapping> Nop190_CustomerRole_Discount_Mappings
		{
			get
			{
				return this.GetTable<Nop190_CustomerRole_Discount_Mapping>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CustomerRole_ProductPrice> Nop190_CustomerRole_ProductPrices
		{
			get
			{
				return this.GetTable<Nop190_CustomerRole_ProductPrice>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_CustomerSession> Nop190_CustomerSessions
		{
			get
			{
				return this.GetTable<Nop190_CustomerSession>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Discount> Nop190_Discounts
		{
			get
			{
				return this.GetTable<Nop190_Discount>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_DiscountRestriction> Nop190_DiscountRestrictions
		{
			get
			{
				return this.GetTable<Nop190_DiscountRestriction>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_DiscountUsageHistory> Nop190_DiscountUsageHistories
		{
			get
			{
				return this.GetTable<Nop190_DiscountUsageHistory>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Download> Nop190_Downloads
		{
			get
			{
				return this.GetTable<Nop190_Download>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_EmailAccount> Nop190_EmailAccounts
		{
			get
			{
				return this.GetTable<Nop190_EmailAccount>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Forums_Forum> Nop190_Forums_Forums
		{
			get
			{
				return this.GetTable<Nop190_Forums_Forum>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Forums_Group> Nop190_Forums_Groups
		{
			get
			{
				return this.GetTable<Nop190_Forums_Group>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Forums_Post> Nop190_Forums_Posts
		{
			get
			{
				return this.GetTable<Nop190_Forums_Post>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Forums_PrivateMessage> Nop190_Forums_PrivateMessages
		{
			get
			{
				return this.GetTable<Nop190_Forums_PrivateMessage>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Forums_Subscription> Nop190_Forums_Subscriptions
		{
			get
			{
				return this.GetTable<Nop190_Forums_Subscription>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Forums_Topic> Nop190_Forums_Topics
		{
			get
			{
				return this.GetTable<Nop190_Forums_Topic>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_GiftCard> Nop190_GiftCards
		{
			get
			{
				return this.GetTable<Nop190_GiftCard>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_GiftCardUsageHistory> Nop190_GiftCardUsageHistories
		{
			get
			{
				return this.GetTable<Nop190_GiftCardUsageHistory>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Language> Nop190_Languages
		{
			get
			{
				return this.GetTable<Nop190_Language>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_LocaleStringResource> Nop190_LocaleStringResources
		{
			get
			{
				return this.GetTable<Nop190_LocaleStringResource>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Log> Nop190_Logs
		{
			get
			{
				return this.GetTable<Nop190_Log>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Manufacturer> Nop190_Manufacturers
		{
			get
			{
				return this.GetTable<Nop190_Manufacturer>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ManufacturerLocalized> Nop190_ManufacturerLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_ManufacturerLocalized>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ManufacturerTemplate> Nop190_ManufacturerTemplates
		{
			get
			{
				return this.GetTable<Nop190_ManufacturerTemplate>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_MeasureDimension> Nop190_MeasureDimensions
		{
			get
			{
				return this.GetTable<Nop190_MeasureDimension>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_MeasureWeight> Nop190_MeasureWeights
		{
			get
			{
				return this.GetTable<Nop190_MeasureWeight>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_MessageTemplate> Nop190_MessageTemplates
		{
			get
			{
				return this.GetTable<Nop190_MessageTemplate>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_MessageTemplateLocalized> Nop190_MessageTemplateLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_MessageTemplateLocalized>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_New> Nop190_News
		{
			get
			{
				return this.GetTable<Nop190_New>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_NewsComment> Nop190_NewsComments
		{
			get
			{
				return this.GetTable<Nop190_NewsComment>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_NewsLetterSubscription> Nop190_NewsLetterSubscriptions
		{
			get
			{
				return this.GetTable<Nop190_NewsLetterSubscription>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Order> Nop190_Orders
		{
			get
			{
				return this.GetTable<Nop190_Order>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_OrderNote> Nop190_OrderNotes
		{
			get
			{
				return this.GetTable<Nop190_OrderNote>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_OrderProductVariant> Nop190_OrderProductVariants
		{
			get
			{
				return this.GetTable<Nop190_OrderProductVariant>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_PaymentMethod> Nop190_PaymentMethods
		{
			get
			{
				return this.GetTable<Nop190_PaymentMethod>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_PaymentMethod_RestrictedCountry> Nop190_PaymentMethod_RestrictedCountries
		{
			get
			{
				return this.GetTable<Nop190_PaymentMethod_RestrictedCountry>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Picture> Nop190_Pictures
		{
			get
			{
				return this.GetTable<Nop190_Picture>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Poll> Nop190_Polls
		{
			get
			{
				return this.GetTable<Nop190_Poll>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_PollAnswer> Nop190_PollAnswers
		{
			get
			{
				return this.GetTable<Nop190_PollAnswer>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_PollVotingRecord> Nop190_PollVotingRecords
		{
			get
			{
				return this.GetTable<Nop190_PollVotingRecord>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Pricelist> Nop190_Pricelists
		{
			get
			{
				return this.GetTable<Nop190_Pricelist>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Product> Nop190_Products
		{
			get
			{
				return this.GetTable<Nop190_Product>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Product_Category_Mapping> Nop190_Product_Category_Mappings
		{
			get
			{
				return this.GetTable<Nop190_Product_Category_Mapping>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Product_Manufacturer_Mapping> Nop190_Product_Manufacturer_Mappings
		{
			get
			{
				return this.GetTable<Nop190_Product_Manufacturer_Mapping>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Product_SpecificationAttribute_Mapping> Nop190_Product_SpecificationAttribute_Mappings
		{
			get
			{
				return this.GetTable<Nop190_Product_SpecificationAttribute_Mapping>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductAttribute> Nop190_ProductAttributes
		{
			get
			{
				return this.GetTable<Nop190_ProductAttribute>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductAttributeLocalized> Nop190_ProductAttributeLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_ProductAttributeLocalized>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductLocalized> Nop190_ProductLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_ProductLocalized>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductPicture> Nop190_ProductPictures
		{
			get
			{
				return this.GetTable<Nop190_ProductPicture>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductRating> Nop190_ProductRatings
		{
			get
			{
				return this.GetTable<Nop190_ProductRating>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductReview> Nop190_ProductReviews
		{
			get
			{
				return this.GetTable<Nop190_ProductReview>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductReviewHelpfulness> Nop190_ProductReviewHelpfulnesses
		{
			get
			{
				return this.GetTable<Nop190_ProductReviewHelpfulness>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductTag> Nop190_ProductTags
		{
			get
			{
				return this.GetTable<Nop190_ProductTag>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductTag_Product_Mapping> Nop190_ProductTag_Product_Mappings
		{
			get
			{
				return this.GetTable<Nop190_ProductTag_Product_Mapping>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductTemplate> Nop190_ProductTemplates
		{
			get
			{
				return this.GetTable<Nop190_ProductTemplate>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductVariant> Nop190_ProductVariants
		{
			get
			{
				return this.GetTable<Nop190_ProductVariant>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductVariant_Discount_Mapping> Nop190_ProductVariant_Discount_Mappings
		{
			get
			{
				return this.GetTable<Nop190_ProductVariant_Discount_Mapping>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductVariant_Pricelist_Mapping> Nop190_ProductVariant_Pricelist_Mappings
		{
			get
			{
				return this.GetTable<Nop190_ProductVariant_Pricelist_Mapping>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductVariant_ProductAttribute_Mapping> Nop190_ProductVariant_ProductAttribute_Mappings
		{
			get
			{
				return this.GetTable<Nop190_ProductVariant_ProductAttribute_Mapping>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductVariantAttributeCombination> Nop190_ProductVariantAttributeCombinations
		{
			get
			{
				return this.GetTable<Nop190_ProductVariantAttributeCombination>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductVariantAttributeValue> Nop190_ProductVariantAttributeValues
		{
			get
			{
				return this.GetTable<Nop190_ProductVariantAttributeValue>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductVariantAttributeValueLocalized> Nop190_ProductVariantAttributeValueLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_ProductVariantAttributeValueLocalized>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ProductVariantLocalized> Nop190_ProductVariantLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_ProductVariantLocalized>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_QBEntity> Nop190_QBEntities
		{
			get
			{
				return this.GetTable<Nop190_QBEntity>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_QueuedEmail> Nop190_QueuedEmails
		{
			get
			{
				return this.GetTable<Nop190_QueuedEmail>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_RecurringPayment> Nop190_RecurringPayments
		{
			get
			{
				return this.GetTable<Nop190_RecurringPayment>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_RecurringPaymentHistory> Nop190_RecurringPaymentHistories
		{
			get
			{
				return this.GetTable<Nop190_RecurringPaymentHistory>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_RelatedProduct> Nop190_RelatedProducts
		{
			get
			{
				return this.GetTable<Nop190_RelatedProduct>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ReturnRequest> Nop190_ReturnRequests
		{
			get
			{
				return this.GetTable<Nop190_ReturnRequest>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_RewardPointsHistory> Nop190_RewardPointsHistories
		{
			get
			{
				return this.GetTable<Nop190_RewardPointsHistory>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_SearchLog> Nop190_SearchLogs
		{
			get
			{
				return this.GetTable<Nop190_SearchLog>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Setting> Nop190_Settings
		{
			get
			{
				return this.GetTable<Nop190_Setting>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ShippingByTotal> Nop190_ShippingByTotals
		{
			get
			{
				return this.GetTable<Nop190_ShippingByTotal>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ShippingByWeight> Nop190_ShippingByWeights
		{
			get
			{
				return this.GetTable<Nop190_ShippingByWeight>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ShippingByWeightAndCountry> Nop190_ShippingByWeightAndCountries
		{
			get
			{
				return this.GetTable<Nop190_ShippingByWeightAndCountry>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ShippingMethod> Nop190_ShippingMethods
		{
			get
			{
				return this.GetTable<Nop190_ShippingMethod>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ShippingMethod_RestrictedCountry> Nop190_ShippingMethod_RestrictedCountries
		{
			get
			{
				return this.GetTable<Nop190_ShippingMethod_RestrictedCountry>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ShippingRateComputationMethod> Nop190_ShippingRateComputationMethods
		{
			get
			{
				return this.GetTable<Nop190_ShippingRateComputationMethod>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_ShoppingCartItem> Nop190_ShoppingCartItems
		{
			get
			{
				return this.GetTable<Nop190_ShoppingCartItem>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_SMSProvider> Nop190_SMSProviders
		{
			get
			{
				return this.GetTable<Nop190_SMSProvider>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_SpecificationAttribute> Nop190_SpecificationAttributes
		{
			get
			{
				return this.GetTable<Nop190_SpecificationAttribute>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_SpecificationAttributeLocalized> Nop190_SpecificationAttributeLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_SpecificationAttributeLocalized>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_SpecificationAttributeOption> Nop190_SpecificationAttributeOptions
		{
			get
			{
				return this.GetTable<Nop190_SpecificationAttributeOption>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_SpecificationAttributeOptionLocalized> Nop190_SpecificationAttributeOptionLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_SpecificationAttributeOptionLocalized>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_StateProvince> Nop190_StateProvinces
		{
			get
			{
				return this.GetTable<Nop190_StateProvince>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_TaxCategory> Nop190_TaxCategories
		{
			get
			{
				return this.GetTable<Nop190_TaxCategory>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_TaxProvider> Nop190_TaxProviders
		{
			get
			{
				return this.GetTable<Nop190_TaxProvider>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_TaxRate> Nop190_TaxRates
		{
			get
			{
				return this.GetTable<Nop190_TaxRate>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_TierPrice> Nop190_TierPrices
		{
			get
			{
				return this.GetTable<Nop190_TierPrice>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_Topic> Nop190_Topics
		{
			get
			{
				return this.GetTable<Nop190_Topic>();
			}
		}
		
		public System.Data.Linq.Table<Nop190_TopicLocalized> Nop190_TopicLocalizeds
		{
			get
			{
				return this.GetTable<Nop190_TopicLocalized>();
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ACL")]
	public partial class Nop190_ACL : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ACLID;
		
		private int _CustomerActionID;
		
		private int _CustomerRoleID;
		
		private bool _Allow;
		
		private EntityRef<Nop190_CustomerAction> _Nop190_CustomerAction;
		
		private EntityRef<Nop190_CustomerRole> _Nop190_CustomerRole;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnACLIDChanging(int value);
    partial void OnACLIDChanged();
    partial void OnCustomerActionIDChanging(int value);
    partial void OnCustomerActionIDChanged();
    partial void OnCustomerRoleIDChanging(int value);
    partial void OnCustomerRoleIDChanged();
    partial void OnAllowChanging(bool value);
    partial void OnAllowChanged();
    #endregion
		
		public Nop190_ACL()
		{
			this._Nop190_CustomerAction = default(EntityRef<Nop190_CustomerAction>);
			this._Nop190_CustomerRole = default(EntityRef<Nop190_CustomerRole>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ACLID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ACLID
		{
			get
			{
				return this._ACLID;
			}
			set
			{
				if ((this._ACLID != value))
				{
					this.OnACLIDChanging(value);
					this.SendPropertyChanging();
					this._ACLID = value;
					this.SendPropertyChanged("ACLID");
					this.OnACLIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerActionID", DbType="Int NOT NULL")]
		public int CustomerActionID
		{
			get
			{
				return this._CustomerActionID;
			}
			set
			{
				if ((this._CustomerActionID != value))
				{
					if (this._Nop190_CustomerAction.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerActionIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerActionID = value;
					this.SendPropertyChanged("CustomerActionID");
					this.OnCustomerActionIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerRoleID", DbType="Int NOT NULL")]
		public int CustomerRoleID
		{
			get
			{
				return this._CustomerRoleID;
			}
			set
			{
				if ((this._CustomerRoleID != value))
				{
					if (this._Nop190_CustomerRole.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerRoleIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerRoleID = value;
					this.SendPropertyChanged("CustomerRoleID");
					this.OnCustomerRoleIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Allow", DbType="Bit NOT NULL")]
		public bool Allow
		{
			get
			{
				return this._Allow;
			}
			set
			{
				if ((this._Allow != value))
				{
					this.OnAllowChanging(value);
					this.SendPropertyChanging();
					this._Allow = value;
					this.SendPropertyChanged("Allow");
					this.OnAllowChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerAction_Nop190_ACL", Storage="_Nop190_CustomerAction", ThisKey="CustomerActionID", OtherKey="CustomerActionID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_CustomerAction Nop190_CustomerAction
		{
			get
			{
				return this._Nop190_CustomerAction.Entity;
			}
			set
			{
				Nop190_CustomerAction previousValue = this._Nop190_CustomerAction.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_CustomerAction.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_CustomerAction.Entity = null;
						previousValue.Nop190_ACLs.Remove(this);
					}
					this._Nop190_CustomerAction.Entity = value;
					if ((value != null))
					{
						value.Nop190_ACLs.Add(this);
						this._CustomerActionID = value.CustomerActionID;
					}
					else
					{
						this._CustomerActionID = default(int);
					}
					this.SendPropertyChanged("Nop190_CustomerAction");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerRole_Nop190_ACL", Storage="_Nop190_CustomerRole", ThisKey="CustomerRoleID", OtherKey="CustomerRoleID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_CustomerRole Nop190_CustomerRole
		{
			get
			{
				return this._Nop190_CustomerRole.Entity;
			}
			set
			{
				Nop190_CustomerRole previousValue = this._Nop190_CustomerRole.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_CustomerRole.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_CustomerRole.Entity = null;
						previousValue.Nop190_ACLs.Remove(this);
					}
					this._Nop190_CustomerRole.Entity = value;
					if ((value != null))
					{
						value.Nop190_ACLs.Add(this);
						this._CustomerRoleID = value.CustomerRoleID;
					}
					else
					{
						this._CustomerRoleID = default(int);
					}
					this.SendPropertyChanged("Nop190_CustomerRole");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Warehouse")]
	public partial class Nop190_Warehouse : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _WarehouseID;
		
		private string _Name;
		
		private string _PhoneNumber;
		
		private string _Email;
		
		private string _FaxNumber;
		
		private string _Address1;
		
		private string _Address2;
		
		private string _City;
		
		private string _StateProvince;
		
		private string _ZipPostalCode;
		
		private int _CountryId;
		
		private bool _Deleted;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnWarehouseIDChanging(int value);
    partial void OnWarehouseIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnPhoneNumberChanging(string value);
    partial void OnPhoneNumberChanged();
    partial void OnEmailChanging(string value);
    partial void OnEmailChanged();
    partial void OnFaxNumberChanging(string value);
    partial void OnFaxNumberChanged();
    partial void OnAddress1Changing(string value);
    partial void OnAddress1Changed();
    partial void OnAddress2Changing(string value);
    partial void OnAddress2Changed();
    partial void OnCityChanging(string value);
    partial void OnCityChanged();
    partial void OnStateProvinceChanging(string value);
    partial void OnStateProvinceChanged();
    partial void OnZipPostalCodeChanging(string value);
    partial void OnZipPostalCodeChanged();
    partial void OnCountryIdChanging(int value);
    partial void OnCountryIdChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_Warehouse()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WarehouseID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int WarehouseID
		{
			get
			{
				return this._WarehouseID;
			}
			set
			{
				if ((this._WarehouseID != value))
				{
					this.OnWarehouseIDChanging(value);
					this.SendPropertyChanging();
					this._WarehouseID = value;
					this.SendPropertyChanged("WarehouseID");
					this.OnWarehouseIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PhoneNumber", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string PhoneNumber
		{
			get
			{
				return this._PhoneNumber;
			}
			set
			{
				if ((this._PhoneNumber != value))
				{
					this.OnPhoneNumberChanging(value);
					this.SendPropertyChanging();
					this._PhoneNumber = value;
					this.SendPropertyChanged("PhoneNumber");
					this.OnPhoneNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Email", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string Email
		{
			get
			{
				return this._Email;
			}
			set
			{
				if ((this._Email != value))
				{
					this.OnEmailChanging(value);
					this.SendPropertyChanging();
					this._Email = value;
					this.SendPropertyChanged("Email");
					this.OnEmailChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FaxNumber", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string FaxNumber
		{
			get
			{
				return this._FaxNumber;
			}
			set
			{
				if ((this._FaxNumber != value))
				{
					this.OnFaxNumberChanging(value);
					this.SendPropertyChanging();
					this._FaxNumber = value;
					this.SendPropertyChanged("FaxNumber");
					this.OnFaxNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address1", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Address1
		{
			get
			{
				return this._Address1;
			}
			set
			{
				if ((this._Address1 != value))
				{
					this.OnAddress1Changing(value);
					this.SendPropertyChanging();
					this._Address1 = value;
					this.SendPropertyChanged("Address1");
					this.OnAddress1Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address2", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Address2
		{
			get
			{
				return this._Address2;
			}
			set
			{
				if ((this._Address2 != value))
				{
					this.OnAddress2Changing(value);
					this.SendPropertyChanging();
					this._Address2 = value;
					this.SendPropertyChanged("Address2");
					this.OnAddress2Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_City", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string City
		{
			get
			{
				return this._City;
			}
			set
			{
				if ((this._City != value))
				{
					this.OnCityChanging(value);
					this.SendPropertyChanging();
					this._City = value;
					this.SendPropertyChanged("City");
					this.OnCityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StateProvince", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string StateProvince
		{
			get
			{
				return this._StateProvince;
			}
			set
			{
				if ((this._StateProvince != value))
				{
					this.OnStateProvinceChanging(value);
					this.SendPropertyChanging();
					this._StateProvince = value;
					this.SendPropertyChanged("StateProvince");
					this.OnStateProvinceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ZipPostalCode", DbType="NVarChar(30) NOT NULL", CanBeNull=false)]
		public string ZipPostalCode
		{
			get
			{
				return this._ZipPostalCode;
			}
			set
			{
				if ((this._ZipPostalCode != value))
				{
					this.OnZipPostalCodeChanging(value);
					this.SendPropertyChanging();
					this._ZipPostalCode = value;
					this.SendPropertyChanged("ZipPostalCode");
					this.OnZipPostalCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CountryId", DbType="Int NOT NULL")]
		public int CountryId
		{
			get
			{
				return this._CountryId;
			}
			set
			{
				if ((this._CountryId != value))
				{
					this.OnCountryIdChanging(value);
					this.SendPropertyChanging();
					this._CountryId = value;
					this.SendPropertyChanged("CountryId");
					this.OnCountryIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ACLPerObject")]
	public partial class Nop190_ACLPerObject : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ACLPerObjectId;
		
		private int _ObjectId;
		
		private int _ObjectTypeId;
		
		private int _CustomerRoleId;
		
		private bool _Deny;
		
		private EntityRef<Nop190_CustomerRole> _Nop190_CustomerRole;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnACLPerObjectIdChanging(int value);
    partial void OnACLPerObjectIdChanged();
    partial void OnObjectIdChanging(int value);
    partial void OnObjectIdChanged();
    partial void OnObjectTypeIdChanging(int value);
    partial void OnObjectTypeIdChanged();
    partial void OnCustomerRoleIdChanging(int value);
    partial void OnCustomerRoleIdChanged();
    partial void OnDenyChanging(bool value);
    partial void OnDenyChanged();
    #endregion
		
		public Nop190_ACLPerObject()
		{
			this._Nop190_CustomerRole = default(EntityRef<Nop190_CustomerRole>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ACLPerObjectId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ACLPerObjectId
		{
			get
			{
				return this._ACLPerObjectId;
			}
			set
			{
				if ((this._ACLPerObjectId != value))
				{
					this.OnACLPerObjectIdChanging(value);
					this.SendPropertyChanging();
					this._ACLPerObjectId = value;
					this.SendPropertyChanged("ACLPerObjectId");
					this.OnACLPerObjectIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ObjectId", DbType="Int NOT NULL")]
		public int ObjectId
		{
			get
			{
				return this._ObjectId;
			}
			set
			{
				if ((this._ObjectId != value))
				{
					this.OnObjectIdChanging(value);
					this.SendPropertyChanging();
					this._ObjectId = value;
					this.SendPropertyChanged("ObjectId");
					this.OnObjectIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ObjectTypeId", DbType="Int NOT NULL")]
		public int ObjectTypeId
		{
			get
			{
				return this._ObjectTypeId;
			}
			set
			{
				if ((this._ObjectTypeId != value))
				{
					this.OnObjectTypeIdChanging(value);
					this.SendPropertyChanging();
					this._ObjectTypeId = value;
					this.SendPropertyChanged("ObjectTypeId");
					this.OnObjectTypeIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerRoleId", DbType="Int NOT NULL")]
		public int CustomerRoleId
		{
			get
			{
				return this._CustomerRoleId;
			}
			set
			{
				if ((this._CustomerRoleId != value))
				{
					if (this._Nop190_CustomerRole.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerRoleIdChanging(value);
					this.SendPropertyChanging();
					this._CustomerRoleId = value;
					this.SendPropertyChanged("CustomerRoleId");
					this.OnCustomerRoleIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[Deny]", Storage="_Deny", DbType="Bit NOT NULL")]
		public bool Deny
		{
			get
			{
				return this._Deny;
			}
			set
			{
				if ((this._Deny != value))
				{
					this.OnDenyChanging(value);
					this.SendPropertyChanging();
					this._Deny = value;
					this.SendPropertyChanged("Deny");
					this.OnDenyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerRole_Nop190_ACLPerObject", Storage="_Nop190_CustomerRole", ThisKey="CustomerRoleId", OtherKey="CustomerRoleID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_CustomerRole Nop190_CustomerRole
		{
			get
			{
				return this._Nop190_CustomerRole.Entity;
			}
			set
			{
				Nop190_CustomerRole previousValue = this._Nop190_CustomerRole.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_CustomerRole.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_CustomerRole.Entity = null;
						previousValue.Nop190_ACLPerObjects.Remove(this);
					}
					this._Nop190_CustomerRole.Entity = value;
					if ((value != null))
					{
						value.Nop190_ACLPerObjects.Add(this);
						this._CustomerRoleId = value.CustomerRoleID;
					}
					else
					{
						this._CustomerRoleId = default(int);
					}
					this.SendPropertyChanged("Nop190_CustomerRole");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ActivityLog")]
	public partial class Nop190_ActivityLog : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ActivityLogID;
		
		private int _ActivityLogTypeID;
		
		private int _CustomerID;
		
		private string _Comment;
		
		private System.DateTime _CreatedOn;
		
		private EntityRef<Nop190_ActivityLogType> _Nop190_ActivityLogType;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnActivityLogIDChanging(int value);
    partial void OnActivityLogIDChanged();
    partial void OnActivityLogTypeIDChanging(int value);
    partial void OnActivityLogTypeIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnCommentChanging(string value);
    partial void OnCommentChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_ActivityLog()
		{
			this._Nop190_ActivityLogType = default(EntityRef<Nop190_ActivityLogType>);
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ActivityLogID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ActivityLogID
		{
			get
			{
				return this._ActivityLogID;
			}
			set
			{
				if ((this._ActivityLogID != value))
				{
					this.OnActivityLogIDChanging(value);
					this.SendPropertyChanging();
					this._ActivityLogID = value;
					this.SendPropertyChanged("ActivityLogID");
					this.OnActivityLogIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ActivityLogTypeID", DbType="Int NOT NULL")]
		public int ActivityLogTypeID
		{
			get
			{
				return this._ActivityLogTypeID;
			}
			set
			{
				if ((this._ActivityLogTypeID != value))
				{
					if (this._Nop190_ActivityLogType.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnActivityLogTypeIDChanging(value);
					this.SendPropertyChanging();
					this._ActivityLogTypeID = value;
					this.SendPropertyChanged("ActivityLogTypeID");
					this.OnActivityLogTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Comment", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string Comment
		{
			get
			{
				return this._Comment;
			}
			set
			{
				if ((this._Comment != value))
				{
					this.OnCommentChanging(value);
					this.SendPropertyChanging();
					this._Comment = value;
					this.SendPropertyChanged("Comment");
					this.OnCommentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ActivityLogType_Nop190_ActivityLog", Storage="_Nop190_ActivityLogType", ThisKey="ActivityLogTypeID", OtherKey="ActivityLogTypeID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ActivityLogType Nop190_ActivityLogType
		{
			get
			{
				return this._Nop190_ActivityLogType.Entity;
			}
			set
			{
				Nop190_ActivityLogType previousValue = this._Nop190_ActivityLogType.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ActivityLogType.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ActivityLogType.Entity = null;
						previousValue.Nop190_ActivityLogs.Remove(this);
					}
					this._Nop190_ActivityLogType.Entity = value;
					if ((value != null))
					{
						value.Nop190_ActivityLogs.Add(this);
						this._ActivityLogTypeID = value.ActivityLogTypeID;
					}
					else
					{
						this._ActivityLogTypeID = default(int);
					}
					this.SendPropertyChanged("Nop190_ActivityLogType");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_ActivityLog", Storage="_Nop190_Customer", ThisKey="CustomerID", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_ActivityLogs.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_ActivityLogs.Add(this);
						this._CustomerID = value.CustomerID;
					}
					else
					{
						this._CustomerID = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ActivityLogType")]
	public partial class Nop190_ActivityLogType : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ActivityLogTypeID;
		
		private string _SystemKeyword;
		
		private string _Name;
		
		private bool _Enabled;
		
		private EntitySet<Nop190_ActivityLog> _Nop190_ActivityLogs;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnActivityLogTypeIDChanging(int value);
    partial void OnActivityLogTypeIDChanged();
    partial void OnSystemKeywordChanging(string value);
    partial void OnSystemKeywordChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnEnabledChanging(bool value);
    partial void OnEnabledChanged();
    #endregion
		
		public Nop190_ActivityLogType()
		{
			this._Nop190_ActivityLogs = new EntitySet<Nop190_ActivityLog>(new Action<Nop190_ActivityLog>(this.attach_Nop190_ActivityLogs), new Action<Nop190_ActivityLog>(this.detach_Nop190_ActivityLogs));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ActivityLogTypeID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ActivityLogTypeID
		{
			get
			{
				return this._ActivityLogTypeID;
			}
			set
			{
				if ((this._ActivityLogTypeID != value))
				{
					this.OnActivityLogTypeIDChanging(value);
					this.SendPropertyChanging();
					this._ActivityLogTypeID = value;
					this.SendPropertyChanged("ActivityLogTypeID");
					this.OnActivityLogTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SystemKeyword", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string SystemKeyword
		{
			get
			{
				return this._SystemKeyword;
			}
			set
			{
				if ((this._SystemKeyword != value))
				{
					this.OnSystemKeywordChanging(value);
					this.SendPropertyChanging();
					this._SystemKeyword = value;
					this.SendPropertyChanged("SystemKeyword");
					this.OnSystemKeywordChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Enabled", DbType="Bit NOT NULL")]
		public bool Enabled
		{
			get
			{
				return this._Enabled;
			}
			set
			{
				if ((this._Enabled != value))
				{
					this.OnEnabledChanging(value);
					this.SendPropertyChanging();
					this._Enabled = value;
					this.SendPropertyChanged("Enabled");
					this.OnEnabledChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ActivityLogType_Nop190_ActivityLog", Storage="_Nop190_ActivityLogs", ThisKey="ActivityLogTypeID", OtherKey="ActivityLogTypeID")]
		public EntitySet<Nop190_ActivityLog> Nop190_ActivityLogs
		{
			get
			{
				return this._Nop190_ActivityLogs;
			}
			set
			{
				this._Nop190_ActivityLogs.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ActivityLogs(Nop190_ActivityLog entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ActivityLogType = this;
		}
		
		private void detach_Nop190_ActivityLogs(Nop190_ActivityLog entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ActivityLogType = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Address")]
	public partial class Nop190_Address : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _AddressId;
		
		private int _CustomerID;
		
		private bool _IsBillingAddress;
		
		private string _FirstName;
		
		private string _LastName;
		
		private string _PhoneNumber;
		
		private string _Email;
		
		private string _FaxNumber;
		
		private string _Company;
		
		private string _Address1;
		
		private string _Address2;
		
		private string _City;
		
		private int _StateProvinceID;
		
		private string _ZipPostalCode;
		
		private int _CountryID;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnAddressIdChanging(int value);
    partial void OnAddressIdChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnIsBillingAddressChanging(bool value);
    partial void OnIsBillingAddressChanged();
    partial void OnFirstNameChanging(string value);
    partial void OnFirstNameChanged();
    partial void OnLastNameChanging(string value);
    partial void OnLastNameChanged();
    partial void OnPhoneNumberChanging(string value);
    partial void OnPhoneNumberChanged();
    partial void OnEmailChanging(string value);
    partial void OnEmailChanged();
    partial void OnFaxNumberChanging(string value);
    partial void OnFaxNumberChanged();
    partial void OnCompanyChanging(string value);
    partial void OnCompanyChanged();
    partial void OnAddress1Changing(string value);
    partial void OnAddress1Changed();
    partial void OnAddress2Changing(string value);
    partial void OnAddress2Changed();
    partial void OnCityChanging(string value);
    partial void OnCityChanged();
    partial void OnStateProvinceIDChanging(int value);
    partial void OnStateProvinceIDChanged();
    partial void OnZipPostalCodeChanging(string value);
    partial void OnZipPostalCodeChanged();
    partial void OnCountryIDChanging(int value);
    partial void OnCountryIDChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_Address()
		{
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AddressId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int AddressId
		{
			get
			{
				return this._AddressId;
			}
			set
			{
				if ((this._AddressId != value))
				{
					this.OnAddressIdChanging(value);
					this.SendPropertyChanging();
					this._AddressId = value;
					this.SendPropertyChanged("AddressId");
					this.OnAddressIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsBillingAddress", DbType="Bit NOT NULL")]
		public bool IsBillingAddress
		{
			get
			{
				return this._IsBillingAddress;
			}
			set
			{
				if ((this._IsBillingAddress != value))
				{
					this.OnIsBillingAddressChanging(value);
					this.SendPropertyChanging();
					this._IsBillingAddress = value;
					this.SendPropertyChanged("IsBillingAddress");
					this.OnIsBillingAddressChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FirstName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string FirstName
		{
			get
			{
				return this._FirstName;
			}
			set
			{
				if ((this._FirstName != value))
				{
					this.OnFirstNameChanging(value);
					this.SendPropertyChanging();
					this._FirstName = value;
					this.SendPropertyChanged("FirstName");
					this.OnFirstNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string LastName
		{
			get
			{
				return this._LastName;
			}
			set
			{
				if ((this._LastName != value))
				{
					this.OnLastNameChanging(value);
					this.SendPropertyChanging();
					this._LastName = value;
					this.SendPropertyChanged("LastName");
					this.OnLastNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PhoneNumber", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string PhoneNumber
		{
			get
			{
				return this._PhoneNumber;
			}
			set
			{
				if ((this._PhoneNumber != value))
				{
					this.OnPhoneNumberChanging(value);
					this.SendPropertyChanging();
					this._PhoneNumber = value;
					this.SendPropertyChanged("PhoneNumber");
					this.OnPhoneNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Email", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string Email
		{
			get
			{
				return this._Email;
			}
			set
			{
				if ((this._Email != value))
				{
					this.OnEmailChanging(value);
					this.SendPropertyChanging();
					this._Email = value;
					this.SendPropertyChanged("Email");
					this.OnEmailChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FaxNumber", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string FaxNumber
		{
			get
			{
				return this._FaxNumber;
			}
			set
			{
				if ((this._FaxNumber != value))
				{
					this.OnFaxNumberChanging(value);
					this.SendPropertyChanging();
					this._FaxNumber = value;
					this.SendPropertyChanged("FaxNumber");
					this.OnFaxNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Company", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Company
		{
			get
			{
				return this._Company;
			}
			set
			{
				if ((this._Company != value))
				{
					this.OnCompanyChanging(value);
					this.SendPropertyChanging();
					this._Company = value;
					this.SendPropertyChanged("Company");
					this.OnCompanyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address1", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Address1
		{
			get
			{
				return this._Address1;
			}
			set
			{
				if ((this._Address1 != value))
				{
					this.OnAddress1Changing(value);
					this.SendPropertyChanging();
					this._Address1 = value;
					this.SendPropertyChanged("Address1");
					this.OnAddress1Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address2", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Address2
		{
			get
			{
				return this._Address2;
			}
			set
			{
				if ((this._Address2 != value))
				{
					this.OnAddress2Changing(value);
					this.SendPropertyChanging();
					this._Address2 = value;
					this.SendPropertyChanged("Address2");
					this.OnAddress2Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_City", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string City
		{
			get
			{
				return this._City;
			}
			set
			{
				if ((this._City != value))
				{
					this.OnCityChanging(value);
					this.SendPropertyChanging();
					this._City = value;
					this.SendPropertyChanged("City");
					this.OnCityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StateProvinceID", DbType="Int NOT NULL")]
		public int StateProvinceID
		{
			get
			{
				return this._StateProvinceID;
			}
			set
			{
				if ((this._StateProvinceID != value))
				{
					this.OnStateProvinceIDChanging(value);
					this.SendPropertyChanging();
					this._StateProvinceID = value;
					this.SendPropertyChanged("StateProvinceID");
					this.OnStateProvinceIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ZipPostalCode", DbType="NVarChar(30) NOT NULL", CanBeNull=false)]
		public string ZipPostalCode
		{
			get
			{
				return this._ZipPostalCode;
			}
			set
			{
				if ((this._ZipPostalCode != value))
				{
					this.OnZipPostalCodeChanging(value);
					this.SendPropertyChanging();
					this._ZipPostalCode = value;
					this.SendPropertyChanged("ZipPostalCode");
					this.OnZipPostalCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CountryID", DbType="Int NOT NULL")]
		public int CountryID
		{
			get
			{
				return this._CountryID;
			}
			set
			{
				if ((this._CountryID != value))
				{
					this.OnCountryIDChanging(value);
					this.SendPropertyChanging();
					this._CountryID = value;
					this.SendPropertyChanged("CountryID");
					this.OnCountryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_Address", Storage="_Nop190_Customer", ThisKey="CustomerID", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_Addresses.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_Addresses.Add(this);
						this._CustomerID = value.CustomerID;
					}
					else
					{
						this._CustomerID = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Affiliate")]
	public partial class Nop190_Affiliate : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _AffiliateID;
		
		private string _FirstName;
		
		private string _LastName;
		
		private string _MiddleName;
		
		private string _PhoneNumber;
		
		private string _Email;
		
		private string _FaxNumber;
		
		private string _Company;
		
		private string _Address1;
		
		private string _Address2;
		
		private string _City;
		
		private string _StateProvince;
		
		private string _ZipPostalCode;
		
		private int _CountryId;
		
		private bool _Active;
		
		private bool _Deleted;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnAffiliateIDChanging(int value);
    partial void OnAffiliateIDChanged();
    partial void OnFirstNameChanging(string value);
    partial void OnFirstNameChanged();
    partial void OnLastNameChanging(string value);
    partial void OnLastNameChanged();
    partial void OnMiddleNameChanging(string value);
    partial void OnMiddleNameChanged();
    partial void OnPhoneNumberChanging(string value);
    partial void OnPhoneNumberChanged();
    partial void OnEmailChanging(string value);
    partial void OnEmailChanged();
    partial void OnFaxNumberChanging(string value);
    partial void OnFaxNumberChanged();
    partial void OnCompanyChanging(string value);
    partial void OnCompanyChanged();
    partial void OnAddress1Changing(string value);
    partial void OnAddress1Changed();
    partial void OnAddress2Changing(string value);
    partial void OnAddress2Changed();
    partial void OnCityChanging(string value);
    partial void OnCityChanged();
    partial void OnStateProvinceChanging(string value);
    partial void OnStateProvinceChanged();
    partial void OnZipPostalCodeChanging(string value);
    partial void OnZipPostalCodeChanged();
    partial void OnCountryIdChanging(int value);
    partial void OnCountryIdChanged();
    partial void OnActiveChanging(bool value);
    partial void OnActiveChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    #endregion
		
		public Nop190_Affiliate()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AffiliateID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int AffiliateID
		{
			get
			{
				return this._AffiliateID;
			}
			set
			{
				if ((this._AffiliateID != value))
				{
					this.OnAffiliateIDChanging(value);
					this.SendPropertyChanging();
					this._AffiliateID = value;
					this.SendPropertyChanged("AffiliateID");
					this.OnAffiliateIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FirstName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string FirstName
		{
			get
			{
				return this._FirstName;
			}
			set
			{
				if ((this._FirstName != value))
				{
					this.OnFirstNameChanging(value);
					this.SendPropertyChanging();
					this._FirstName = value;
					this.SendPropertyChanged("FirstName");
					this.OnFirstNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string LastName
		{
			get
			{
				return this._LastName;
			}
			set
			{
				if ((this._LastName != value))
				{
					this.OnLastNameChanging(value);
					this.SendPropertyChanging();
					this._LastName = value;
					this.SendPropertyChanged("LastName");
					this.OnLastNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MiddleName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string MiddleName
		{
			get
			{
				return this._MiddleName;
			}
			set
			{
				if ((this._MiddleName != value))
				{
					this.OnMiddleNameChanging(value);
					this.SendPropertyChanging();
					this._MiddleName = value;
					this.SendPropertyChanged("MiddleName");
					this.OnMiddleNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PhoneNumber", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string PhoneNumber
		{
			get
			{
				return this._PhoneNumber;
			}
			set
			{
				if ((this._PhoneNumber != value))
				{
					this.OnPhoneNumberChanging(value);
					this.SendPropertyChanging();
					this._PhoneNumber = value;
					this.SendPropertyChanged("PhoneNumber");
					this.OnPhoneNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Email", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string Email
		{
			get
			{
				return this._Email;
			}
			set
			{
				if ((this._Email != value))
				{
					this.OnEmailChanging(value);
					this.SendPropertyChanging();
					this._Email = value;
					this.SendPropertyChanged("Email");
					this.OnEmailChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FaxNumber", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string FaxNumber
		{
			get
			{
				return this._FaxNumber;
			}
			set
			{
				if ((this._FaxNumber != value))
				{
					this.OnFaxNumberChanging(value);
					this.SendPropertyChanging();
					this._FaxNumber = value;
					this.SendPropertyChanged("FaxNumber");
					this.OnFaxNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Company", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Company
		{
			get
			{
				return this._Company;
			}
			set
			{
				if ((this._Company != value))
				{
					this.OnCompanyChanging(value);
					this.SendPropertyChanging();
					this._Company = value;
					this.SendPropertyChanged("Company");
					this.OnCompanyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address1", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Address1
		{
			get
			{
				return this._Address1;
			}
			set
			{
				if ((this._Address1 != value))
				{
					this.OnAddress1Changing(value);
					this.SendPropertyChanging();
					this._Address1 = value;
					this.SendPropertyChanged("Address1");
					this.OnAddress1Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address2", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Address2
		{
			get
			{
				return this._Address2;
			}
			set
			{
				if ((this._Address2 != value))
				{
					this.OnAddress2Changing(value);
					this.SendPropertyChanging();
					this._Address2 = value;
					this.SendPropertyChanged("Address2");
					this.OnAddress2Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_City", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string City
		{
			get
			{
				return this._City;
			}
			set
			{
				if ((this._City != value))
				{
					this.OnCityChanging(value);
					this.SendPropertyChanging();
					this._City = value;
					this.SendPropertyChanged("City");
					this.OnCityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StateProvince", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string StateProvince
		{
			get
			{
				return this._StateProvince;
			}
			set
			{
				if ((this._StateProvince != value))
				{
					this.OnStateProvinceChanging(value);
					this.SendPropertyChanging();
					this._StateProvince = value;
					this.SendPropertyChanged("StateProvince");
					this.OnStateProvinceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ZipPostalCode", DbType="NVarChar(30) NOT NULL", CanBeNull=false)]
		public string ZipPostalCode
		{
			get
			{
				return this._ZipPostalCode;
			}
			set
			{
				if ((this._ZipPostalCode != value))
				{
					this.OnZipPostalCodeChanging(value);
					this.SendPropertyChanging();
					this._ZipPostalCode = value;
					this.SendPropertyChanged("ZipPostalCode");
					this.OnZipPostalCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CountryId", DbType="Int NOT NULL")]
		public int CountryId
		{
			get
			{
				return this._CountryId;
			}
			set
			{
				if ((this._CountryId != value))
				{
					this.OnCountryIdChanging(value);
					this.SendPropertyChanging();
					this._CountryId = value;
					this.SendPropertyChanged("CountryId");
					this.OnCountryIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Active", DbType="Bit NOT NULL")]
		public bool Active
		{
			get
			{
				return this._Active;
			}
			set
			{
				if ((this._Active != value))
				{
					this.OnActiveChanging(value);
					this.SendPropertyChanging();
					this._Active = value;
					this.SendPropertyChanged("Active");
					this.OnActiveChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_BannedIpAddress")]
	public partial class Nop190_BannedIpAddress : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _BannedIpAddressID;
		
		private string _Address;
		
		private string _Comment;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnBannedIpAddressIDChanging(int value);
    partial void OnBannedIpAddressIDChanged();
    partial void OnAddressChanging(string value);
    partial void OnAddressChanged();
    partial void OnCommentChanging(string value);
    partial void OnCommentChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_BannedIpAddress()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BannedIpAddressID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int BannedIpAddressID
		{
			get
			{
				return this._BannedIpAddressID;
			}
			set
			{
				if ((this._BannedIpAddressID != value))
				{
					this.OnBannedIpAddressIDChanging(value);
					this.SendPropertyChanging();
					this._BannedIpAddressID = value;
					this.SendPropertyChanged("BannedIpAddressID");
					this.OnBannedIpAddressIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string Address
		{
			get
			{
				return this._Address;
			}
			set
			{
				if ((this._Address != value))
				{
					this.OnAddressChanging(value);
					this.SendPropertyChanging();
					this._Address = value;
					this.SendPropertyChanged("Address");
					this.OnAddressChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Comment", DbType="NVarChar(500)")]
		public string Comment
		{
			get
			{
				return this._Comment;
			}
			set
			{
				if ((this._Comment != value))
				{
					this.OnCommentChanging(value);
					this.SendPropertyChanging();
					this._Comment = value;
					this.SendPropertyChanged("Comment");
					this.OnCommentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_BannedIpNetwork")]
	public partial class Nop190_BannedIpNetwork : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _BannedIpNetworkID;
		
		private string _StartAddress;
		
		private string _EndAddress;
		
		private string _Comment;
		
		private string _IpException;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnBannedIpNetworkIDChanging(int value);
    partial void OnBannedIpNetworkIDChanged();
    partial void OnStartAddressChanging(string value);
    partial void OnStartAddressChanged();
    partial void OnEndAddressChanging(string value);
    partial void OnEndAddressChanged();
    partial void OnCommentChanging(string value);
    partial void OnCommentChanged();
    partial void OnIpExceptionChanging(string value);
    partial void OnIpExceptionChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_BannedIpNetwork()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BannedIpNetworkID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int BannedIpNetworkID
		{
			get
			{
				return this._BannedIpNetworkID;
			}
			set
			{
				if ((this._BannedIpNetworkID != value))
				{
					this.OnBannedIpNetworkIDChanging(value);
					this.SendPropertyChanging();
					this._BannedIpNetworkID = value;
					this.SendPropertyChanged("BannedIpNetworkID");
					this.OnBannedIpNetworkIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StartAddress", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string StartAddress
		{
			get
			{
				return this._StartAddress;
			}
			set
			{
				if ((this._StartAddress != value))
				{
					this.OnStartAddressChanging(value);
					this.SendPropertyChanging();
					this._StartAddress = value;
					this.SendPropertyChanged("StartAddress");
					this.OnStartAddressChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EndAddress", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string EndAddress
		{
			get
			{
				return this._EndAddress;
			}
			set
			{
				if ((this._EndAddress != value))
				{
					this.OnEndAddressChanging(value);
					this.SendPropertyChanging();
					this._EndAddress = value;
					this.SendPropertyChanged("EndAddress");
					this.OnEndAddressChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Comment", DbType="NVarChar(500)")]
		public string Comment
		{
			get
			{
				return this._Comment;
			}
			set
			{
				if ((this._Comment != value))
				{
					this.OnCommentChanging(value);
					this.SendPropertyChanging();
					this._Comment = value;
					this.SendPropertyChanged("Comment");
					this.OnCommentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IpException", DbType="NVarChar(MAX)")]
		public string IpException
		{
			get
			{
				return this._IpException;
			}
			set
			{
				if ((this._IpException != value))
				{
					this.OnIpExceptionChanging(value);
					this.SendPropertyChanging();
					this._IpException = value;
					this.SendPropertyChanged("IpException");
					this.OnIpExceptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_BlogComment")]
	public partial class Nop190_BlogComment : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _BlogCommentID;
		
		private int _BlogPostID;
		
		private int _CustomerID;
		
		private string _IPAddress;
		
		private string _CommentText;
		
		private System.DateTime _CreatedOn;
		
		private EntityRef<Nop190_BlogPost> _Nop190_BlogPost;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnBlogCommentIDChanging(int value);
    partial void OnBlogCommentIDChanged();
    partial void OnBlogPostIDChanging(int value);
    partial void OnBlogPostIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnIPAddressChanging(string value);
    partial void OnIPAddressChanged();
    partial void OnCommentTextChanging(string value);
    partial void OnCommentTextChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_BlogComment()
		{
			this._Nop190_BlogPost = default(EntityRef<Nop190_BlogPost>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BlogCommentID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int BlogCommentID
		{
			get
			{
				return this._BlogCommentID;
			}
			set
			{
				if ((this._BlogCommentID != value))
				{
					this.OnBlogCommentIDChanging(value);
					this.SendPropertyChanging();
					this._BlogCommentID = value;
					this.SendPropertyChanged("BlogCommentID");
					this.OnBlogCommentIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BlogPostID", DbType="Int NOT NULL")]
		public int BlogPostID
		{
			get
			{
				return this._BlogPostID;
			}
			set
			{
				if ((this._BlogPostID != value))
				{
					if (this._Nop190_BlogPost.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnBlogPostIDChanging(value);
					this.SendPropertyChanging();
					this._BlogPostID = value;
					this.SendPropertyChanged("BlogPostID");
					this.OnBlogPostIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IPAddress", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string IPAddress
		{
			get
			{
				return this._IPAddress;
			}
			set
			{
				if ((this._IPAddress != value))
				{
					this.OnIPAddressChanging(value);
					this.SendPropertyChanging();
					this._IPAddress = value;
					this.SendPropertyChanged("IPAddress");
					this.OnIPAddressChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CommentText", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string CommentText
		{
			get
			{
				return this._CommentText;
			}
			set
			{
				if ((this._CommentText != value))
				{
					this.OnCommentTextChanging(value);
					this.SendPropertyChanging();
					this._CommentText = value;
					this.SendPropertyChanged("CommentText");
					this.OnCommentTextChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_BlogPost_Nop190_BlogComment", Storage="_Nop190_BlogPost", ThisKey="BlogPostID", OtherKey="BlogPostID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_BlogPost Nop190_BlogPost
		{
			get
			{
				return this._Nop190_BlogPost.Entity;
			}
			set
			{
				Nop190_BlogPost previousValue = this._Nop190_BlogPost.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_BlogPost.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_BlogPost.Entity = null;
						previousValue.Nop190_BlogComments.Remove(this);
					}
					this._Nop190_BlogPost.Entity = value;
					if ((value != null))
					{
						value.Nop190_BlogComments.Add(this);
						this._BlogPostID = value.BlogPostID;
					}
					else
					{
						this._BlogPostID = default(int);
					}
					this.SendPropertyChanged("Nop190_BlogPost");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_BlogPost")]
	public partial class Nop190_BlogPost : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _BlogPostID;
		
		private int _LanguageID;
		
		private string _BlogPostTitle;
		
		private string _BlogPostBody;
		
		private bool _BlogPostAllowComments;
		
		private string _Tags;
		
		private int _CreatedByID;
		
		private System.DateTime _CreatedOn;
		
		private EntitySet<Nop190_BlogComment> _Nop190_BlogComments;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnBlogPostIDChanging(int value);
    partial void OnBlogPostIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnBlogPostTitleChanging(string value);
    partial void OnBlogPostTitleChanged();
    partial void OnBlogPostBodyChanging(string value);
    partial void OnBlogPostBodyChanged();
    partial void OnBlogPostAllowCommentsChanging(bool value);
    partial void OnBlogPostAllowCommentsChanged();
    partial void OnTagsChanging(string value);
    partial void OnTagsChanged();
    partial void OnCreatedByIDChanging(int value);
    partial void OnCreatedByIDChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_BlogPost()
		{
			this._Nop190_BlogComments = new EntitySet<Nop190_BlogComment>(new Action<Nop190_BlogComment>(this.attach_Nop190_BlogComments), new Action<Nop190_BlogComment>(this.detach_Nop190_BlogComments));
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BlogPostID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int BlogPostID
		{
			get
			{
				return this._BlogPostID;
			}
			set
			{
				if ((this._BlogPostID != value))
				{
					this.OnBlogPostIDChanging(value);
					this.SendPropertyChanging();
					this._BlogPostID = value;
					this.SendPropertyChanged("BlogPostID");
					this.OnBlogPostIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BlogPostTitle", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string BlogPostTitle
		{
			get
			{
				return this._BlogPostTitle;
			}
			set
			{
				if ((this._BlogPostTitle != value))
				{
					this.OnBlogPostTitleChanging(value);
					this.SendPropertyChanging();
					this._BlogPostTitle = value;
					this.SendPropertyChanged("BlogPostTitle");
					this.OnBlogPostTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BlogPostBody", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string BlogPostBody
		{
			get
			{
				return this._BlogPostBody;
			}
			set
			{
				if ((this._BlogPostBody != value))
				{
					this.OnBlogPostBodyChanging(value);
					this.SendPropertyChanging();
					this._BlogPostBody = value;
					this.SendPropertyChanged("BlogPostBody");
					this.OnBlogPostBodyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BlogPostAllowComments", DbType="Bit NOT NULL")]
		public bool BlogPostAllowComments
		{
			get
			{
				return this._BlogPostAllowComments;
			}
			set
			{
				if ((this._BlogPostAllowComments != value))
				{
					this.OnBlogPostAllowCommentsChanging(value);
					this.SendPropertyChanging();
					this._BlogPostAllowComments = value;
					this.SendPropertyChanged("BlogPostAllowComments");
					this.OnBlogPostAllowCommentsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Tags", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string Tags
		{
			get
			{
				return this._Tags;
			}
			set
			{
				if ((this._Tags != value))
				{
					this.OnTagsChanging(value);
					this.SendPropertyChanging();
					this._Tags = value;
					this.SendPropertyChanged("Tags");
					this.OnTagsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedByID", DbType="Int NOT NULL")]
		public int CreatedByID
		{
			get
			{
				return this._CreatedByID;
			}
			set
			{
				if ((this._CreatedByID != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCreatedByIDChanging(value);
					this.SendPropertyChanging();
					this._CreatedByID = value;
					this.SendPropertyChanged("CreatedByID");
					this.OnCreatedByIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_BlogPost_Nop190_BlogComment", Storage="_Nop190_BlogComments", ThisKey="BlogPostID", OtherKey="BlogPostID")]
		public EntitySet<Nop190_BlogComment> Nop190_BlogComments
		{
			get
			{
				return this._Nop190_BlogComments;
			}
			set
			{
				this._Nop190_BlogComments.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_BlogPost", Storage="_Nop190_Customer", ThisKey="CreatedByID", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_BlogPosts.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_BlogPosts.Add(this);
						this._CreatedByID = value.CustomerID;
					}
					else
					{
						this._CreatedByID = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_BlogPost", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_BlogPosts.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_BlogPosts.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_BlogComments(Nop190_BlogComment entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_BlogPost = this;
		}
		
		private void detach_Nop190_BlogComments(Nop190_BlogComment entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_BlogPost = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Campaign")]
	public partial class Nop190_Campaign : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CampaignID;
		
		private string _Name;
		
		private string _Subject;
		
		private string _Body;
		
		private System.DateTime _CreatedOn;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCampaignIDChanging(int value);
    partial void OnCampaignIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnSubjectChanging(string value);
    partial void OnSubjectChanged();
    partial void OnBodyChanging(string value);
    partial void OnBodyChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_Campaign()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CampaignID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CampaignID
		{
			get
			{
				return this._CampaignID;
			}
			set
			{
				if ((this._CampaignID != value))
				{
					this.OnCampaignIDChanging(value);
					this.SendPropertyChanging();
					this._CampaignID = value;
					this.SendPropertyChanged("CampaignID");
					this.OnCampaignIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Subject", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string Subject
		{
			get
			{
				return this._Subject;
			}
			set
			{
				if ((this._Subject != value))
				{
					this.OnSubjectChanging(value);
					this.SendPropertyChanging();
					this._Subject = value;
					this.SendPropertyChanged("Subject");
					this.OnSubjectChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Body", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Body
		{
			get
			{
				return this._Body;
			}
			set
			{
				if ((this._Body != value))
				{
					this.OnBodyChanging(value);
					this.SendPropertyChanging();
					this._Body = value;
					this.SendPropertyChanged("Body");
					this.OnBodyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Category")]
	public partial class Nop190_Category : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CategoryID;
		
		private string _Name;
		
		private string _Description;
		
		private int _TemplateID;
		
		private string _MetaKeywords;
		
		private string _MetaDescription;
		
		private string _MetaTitle;
		
		private string _SEName;
		
		private int _ParentCategoryID;
		
		private int _PictureID;
		
		private int _PageSize;
		
		private string _PriceRanges;
		
		private bool _ShowOnHomePage;
		
		private bool _Published;
		
		private bool _Deleted;
		
		private int _DisplayOrder;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_Category_Discount_Mapping> _Nop190_Category_Discount_Mappings;
		
		private EntitySet<Nop190_CategoryLocalized> _Nop190_CategoryLocalizeds;
		
		private EntitySet<Nop190_Product_Category_Mapping> _Nop190_Product_Category_Mappings;
		
		private EntityRef<Nop190_CategoryTemplate> _Nop190_CategoryTemplate;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCategoryIDChanging(int value);
    partial void OnCategoryIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnTemplateIDChanging(int value);
    partial void OnTemplateIDChanged();
    partial void OnMetaKeywordsChanging(string value);
    partial void OnMetaKeywordsChanged();
    partial void OnMetaDescriptionChanging(string value);
    partial void OnMetaDescriptionChanged();
    partial void OnMetaTitleChanging(string value);
    partial void OnMetaTitleChanged();
    partial void OnSENameChanging(string value);
    partial void OnSENameChanged();
    partial void OnParentCategoryIDChanging(int value);
    partial void OnParentCategoryIDChanged();
    partial void OnPictureIDChanging(int value);
    partial void OnPictureIDChanged();
    partial void OnPageSizeChanging(int value);
    partial void OnPageSizeChanged();
    partial void OnPriceRangesChanging(string value);
    partial void OnPriceRangesChanged();
    partial void OnShowOnHomePageChanging(bool value);
    partial void OnShowOnHomePageChanged();
    partial void OnPublishedChanging(bool value);
    partial void OnPublishedChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_Category()
		{
			this._Nop190_Category_Discount_Mappings = new EntitySet<Nop190_Category_Discount_Mapping>(new Action<Nop190_Category_Discount_Mapping>(this.attach_Nop190_Category_Discount_Mappings), new Action<Nop190_Category_Discount_Mapping>(this.detach_Nop190_Category_Discount_Mappings));
			this._Nop190_CategoryLocalizeds = new EntitySet<Nop190_CategoryLocalized>(new Action<Nop190_CategoryLocalized>(this.attach_Nop190_CategoryLocalizeds), new Action<Nop190_CategoryLocalized>(this.detach_Nop190_CategoryLocalizeds));
			this._Nop190_Product_Category_Mappings = new EntitySet<Nop190_Product_Category_Mapping>(new Action<Nop190_Product_Category_Mapping>(this.attach_Nop190_Product_Category_Mappings), new Action<Nop190_Product_Category_Mapping>(this.detach_Nop190_Product_Category_Mappings));
			this._Nop190_CategoryTemplate = default(EntityRef<Nop190_CategoryTemplate>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CategoryID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CategoryID
		{
			get
			{
				return this._CategoryID;
			}
			set
			{
				if ((this._CategoryID != value))
				{
					this.OnCategoryIDChanging(value);
					this.SendPropertyChanging();
					this._CategoryID = value;
					this.SendPropertyChanged("CategoryID");
					this.OnCategoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TemplateID", DbType="Int NOT NULL")]
		public int TemplateID
		{
			get
			{
				return this._TemplateID;
			}
			set
			{
				if ((this._TemplateID != value))
				{
					if (this._Nop190_CategoryTemplate.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnTemplateIDChanging(value);
					this.SendPropertyChanging();
					this._TemplateID = value;
					this.SendPropertyChanged("TemplateID");
					this.OnTemplateIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaKeywords", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaKeywords
		{
			get
			{
				return this._MetaKeywords;
			}
			set
			{
				if ((this._MetaKeywords != value))
				{
					this.OnMetaKeywordsChanging(value);
					this.SendPropertyChanging();
					this._MetaKeywords = value;
					this.SendPropertyChanged("MetaKeywords");
					this.OnMetaKeywordsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaDescription", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string MetaDescription
		{
			get
			{
				return this._MetaDescription;
			}
			set
			{
				if ((this._MetaDescription != value))
				{
					this.OnMetaDescriptionChanging(value);
					this.SendPropertyChanging();
					this._MetaDescription = value;
					this.SendPropertyChanged("MetaDescription");
					this.OnMetaDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaTitle", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaTitle
		{
			get
			{
				return this._MetaTitle;
			}
			set
			{
				if ((this._MetaTitle != value))
				{
					this.OnMetaTitleChanging(value);
					this.SendPropertyChanging();
					this._MetaTitle = value;
					this.SendPropertyChanged("MetaTitle");
					this.OnMetaTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SEName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SEName
		{
			get
			{
				return this._SEName;
			}
			set
			{
				if ((this._SEName != value))
				{
					this.OnSENameChanging(value);
					this.SendPropertyChanging();
					this._SEName = value;
					this.SendPropertyChanged("SEName");
					this.OnSENameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ParentCategoryID", DbType="Int NOT NULL")]
		public int ParentCategoryID
		{
			get
			{
				return this._ParentCategoryID;
			}
			set
			{
				if ((this._ParentCategoryID != value))
				{
					this.OnParentCategoryIDChanging(value);
					this.SendPropertyChanging();
					this._ParentCategoryID = value;
					this.SendPropertyChanged("ParentCategoryID");
					this.OnParentCategoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PictureID", DbType="Int NOT NULL")]
		public int PictureID
		{
			get
			{
				return this._PictureID;
			}
			set
			{
				if ((this._PictureID != value))
				{
					this.OnPictureIDChanging(value);
					this.SendPropertyChanging();
					this._PictureID = value;
					this.SendPropertyChanged("PictureID");
					this.OnPictureIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PageSize", DbType="Int NOT NULL")]
		public int PageSize
		{
			get
			{
				return this._PageSize;
			}
			set
			{
				if ((this._PageSize != value))
				{
					this.OnPageSizeChanging(value);
					this.SendPropertyChanging();
					this._PageSize = value;
					this.SendPropertyChanged("PageSize");
					this.OnPageSizeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceRanges", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string PriceRanges
		{
			get
			{
				return this._PriceRanges;
			}
			set
			{
				if ((this._PriceRanges != value))
				{
					this.OnPriceRangesChanging(value);
					this.SendPropertyChanging();
					this._PriceRanges = value;
					this.SendPropertyChanged("PriceRanges");
					this.OnPriceRangesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShowOnHomePage", DbType="Bit NOT NULL")]
		public bool ShowOnHomePage
		{
			get
			{
				return this._ShowOnHomePage;
			}
			set
			{
				if ((this._ShowOnHomePage != value))
				{
					this.OnShowOnHomePageChanging(value);
					this.SendPropertyChanging();
					this._ShowOnHomePage = value;
					this.SendPropertyChanged("ShowOnHomePage");
					this.OnShowOnHomePageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Published", DbType="Bit NOT NULL")]
		public bool Published
		{
			get
			{
				return this._Published;
			}
			set
			{
				if ((this._Published != value))
				{
					this.OnPublishedChanging(value);
					this.SendPropertyChanging();
					this._Published = value;
					this.SendPropertyChanged("Published");
					this.OnPublishedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Category_Nop190_Category_Discount_Mapping", Storage="_Nop190_Category_Discount_Mappings", ThisKey="CategoryID", OtherKey="CategoryID")]
		public EntitySet<Nop190_Category_Discount_Mapping> Nop190_Category_Discount_Mappings
		{
			get
			{
				return this._Nop190_Category_Discount_Mappings;
			}
			set
			{
				this._Nop190_Category_Discount_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Category_Nop190_CategoryLocalized", Storage="_Nop190_CategoryLocalizeds", ThisKey="CategoryID", OtherKey="CategoryID")]
		public EntitySet<Nop190_CategoryLocalized> Nop190_CategoryLocalizeds
		{
			get
			{
				return this._Nop190_CategoryLocalizeds;
			}
			set
			{
				this._Nop190_CategoryLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Category_Nop190_Product_Category_Mapping", Storage="_Nop190_Product_Category_Mappings", ThisKey="CategoryID", OtherKey="CategoryID")]
		public EntitySet<Nop190_Product_Category_Mapping> Nop190_Product_Category_Mappings
		{
			get
			{
				return this._Nop190_Product_Category_Mappings;
			}
			set
			{
				this._Nop190_Product_Category_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CategoryTemplate_Nop190_Category", Storage="_Nop190_CategoryTemplate", ThisKey="TemplateID", OtherKey="CategoryTemplateId", IsForeignKey=true)]
		public Nop190_CategoryTemplate Nop190_CategoryTemplate
		{
			get
			{
				return this._Nop190_CategoryTemplate.Entity;
			}
			set
			{
				Nop190_CategoryTemplate previousValue = this._Nop190_CategoryTemplate.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_CategoryTemplate.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_CategoryTemplate.Entity = null;
						previousValue.Nop190_Categories.Remove(this);
					}
					this._Nop190_CategoryTemplate.Entity = value;
					if ((value != null))
					{
						value.Nop190_Categories.Add(this);
						this._TemplateID = value.CategoryTemplateId;
					}
					else
					{
						this._TemplateID = default(int);
					}
					this.SendPropertyChanged("Nop190_CategoryTemplate");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_Category_Discount_Mappings(Nop190_Category_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Category = this;
		}
		
		private void detach_Nop190_Category_Discount_Mappings(Nop190_Category_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Category = null;
		}
		
		private void attach_Nop190_CategoryLocalizeds(Nop190_CategoryLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Category = this;
		}
		
		private void detach_Nop190_CategoryLocalizeds(Nop190_CategoryLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Category = null;
		}
		
		private void attach_Nop190_Product_Category_Mappings(Nop190_Product_Category_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Category = this;
		}
		
		private void detach_Nop190_Product_Category_Mappings(Nop190_Product_Category_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Category = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Category_Discount_Mapping")]
	public partial class Nop190_Category_Discount_Mapping : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CategoryID;
		
		private int _DiscountID;
		
		private EntityRef<Nop190_Category> _Nop190_Category;
		
		private EntityRef<Nop190_Discount> _Nop190_Discount;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCategoryIDChanging(int value);
    partial void OnCategoryIDChanged();
    partial void OnDiscountIDChanging(int value);
    partial void OnDiscountIDChanged();
    #endregion
		
		public Nop190_Category_Discount_Mapping()
		{
			this._Nop190_Category = default(EntityRef<Nop190_Category>);
			this._Nop190_Discount = default(EntityRef<Nop190_Discount>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CategoryID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int CategoryID
		{
			get
			{
				return this._CategoryID;
			}
			set
			{
				if ((this._CategoryID != value))
				{
					if (this._Nop190_Category.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCategoryIDChanging(value);
					this.SendPropertyChanging();
					this._CategoryID = value;
					this.SendPropertyChanged("CategoryID");
					this.OnCategoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int DiscountID
		{
			get
			{
				return this._DiscountID;
			}
			set
			{
				if ((this._DiscountID != value))
				{
					if (this._Nop190_Discount.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnDiscountIDChanging(value);
					this.SendPropertyChanging();
					this._DiscountID = value;
					this.SendPropertyChanged("DiscountID");
					this.OnDiscountIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Category_Nop190_Category_Discount_Mapping", Storage="_Nop190_Category", ThisKey="CategoryID", OtherKey="CategoryID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Category Nop190_Category
		{
			get
			{
				return this._Nop190_Category.Entity;
			}
			set
			{
				Nop190_Category previousValue = this._Nop190_Category.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Category.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Category.Entity = null;
						previousValue.Nop190_Category_Discount_Mappings.Remove(this);
					}
					this._Nop190_Category.Entity = value;
					if ((value != null))
					{
						value.Nop190_Category_Discount_Mappings.Add(this);
						this._CategoryID = value.CategoryID;
					}
					else
					{
						this._CategoryID = default(int);
					}
					this.SendPropertyChanged("Nop190_Category");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Discount_Nop190_Category_Discount_Mapping", Storage="_Nop190_Discount", ThisKey="DiscountID", OtherKey="DiscountID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Discount Nop190_Discount
		{
			get
			{
				return this._Nop190_Discount.Entity;
			}
			set
			{
				Nop190_Discount previousValue = this._Nop190_Discount.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Discount.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Discount.Entity = null;
						previousValue.Nop190_Category_Discount_Mappings.Remove(this);
					}
					this._Nop190_Discount.Entity = value;
					if ((value != null))
					{
						value.Nop190_Category_Discount_Mappings.Add(this);
						this._DiscountID = value.DiscountID;
					}
					else
					{
						this._DiscountID = default(int);
					}
					this.SendPropertyChanged("Nop190_Discount");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CategoryLocalized")]
	public partial class Nop190_CategoryLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CategoryLocalizedID;
		
		private int _CategoryID;
		
		private int _LanguageID;
		
		private string _Name;
		
		private string _Description;
		
		private string _MetaKeywords;
		
		private string _MetaDescription;
		
		private string _MetaTitle;
		
		private string _SEName;
		
		private EntityRef<Nop190_Category> _Nop190_Category;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCategoryLocalizedIDChanging(int value);
    partial void OnCategoryLocalizedIDChanged();
    partial void OnCategoryIDChanging(int value);
    partial void OnCategoryIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnMetaKeywordsChanging(string value);
    partial void OnMetaKeywordsChanged();
    partial void OnMetaDescriptionChanging(string value);
    partial void OnMetaDescriptionChanged();
    partial void OnMetaTitleChanging(string value);
    partial void OnMetaTitleChanged();
    partial void OnSENameChanging(string value);
    partial void OnSENameChanged();
    #endregion
		
		public Nop190_CategoryLocalized()
		{
			this._Nop190_Category = default(EntityRef<Nop190_Category>);
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CategoryLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CategoryLocalizedID
		{
			get
			{
				return this._CategoryLocalizedID;
			}
			set
			{
				if ((this._CategoryLocalizedID != value))
				{
					this.OnCategoryLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._CategoryLocalizedID = value;
					this.SendPropertyChanged("CategoryLocalizedID");
					this.OnCategoryLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CategoryID", DbType="Int NOT NULL")]
		public int CategoryID
		{
			get
			{
				return this._CategoryID;
			}
			set
			{
				if ((this._CategoryID != value))
				{
					if (this._Nop190_Category.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCategoryIDChanging(value);
					this.SendPropertyChanging();
					this._CategoryID = value;
					this.SendPropertyChanged("CategoryID");
					this.OnCategoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaKeywords", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaKeywords
		{
			get
			{
				return this._MetaKeywords;
			}
			set
			{
				if ((this._MetaKeywords != value))
				{
					this.OnMetaKeywordsChanging(value);
					this.SendPropertyChanging();
					this._MetaKeywords = value;
					this.SendPropertyChanged("MetaKeywords");
					this.OnMetaKeywordsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaDescription", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string MetaDescription
		{
			get
			{
				return this._MetaDescription;
			}
			set
			{
				if ((this._MetaDescription != value))
				{
					this.OnMetaDescriptionChanging(value);
					this.SendPropertyChanging();
					this._MetaDescription = value;
					this.SendPropertyChanged("MetaDescription");
					this.OnMetaDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaTitle", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaTitle
		{
			get
			{
				return this._MetaTitle;
			}
			set
			{
				if ((this._MetaTitle != value))
				{
					this.OnMetaTitleChanging(value);
					this.SendPropertyChanging();
					this._MetaTitle = value;
					this.SendPropertyChanged("MetaTitle");
					this.OnMetaTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SEName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SEName
		{
			get
			{
				return this._SEName;
			}
			set
			{
				if ((this._SEName != value))
				{
					this.OnSENameChanging(value);
					this.SendPropertyChanging();
					this._SEName = value;
					this.SendPropertyChanged("SEName");
					this.OnSENameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Category_Nop190_CategoryLocalized", Storage="_Nop190_Category", ThisKey="CategoryID", OtherKey="CategoryID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Category Nop190_Category
		{
			get
			{
				return this._Nop190_Category.Entity;
			}
			set
			{
				Nop190_Category previousValue = this._Nop190_Category.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Category.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Category.Entity = null;
						previousValue.Nop190_CategoryLocalizeds.Remove(this);
					}
					this._Nop190_Category.Entity = value;
					if ((value != null))
					{
						value.Nop190_CategoryLocalizeds.Add(this);
						this._CategoryID = value.CategoryID;
					}
					else
					{
						this._CategoryID = default(int);
					}
					this.SendPropertyChanged("Nop190_Category");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_CategoryLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_CategoryLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_CategoryLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CategoryTemplate")]
	public partial class Nop190_CategoryTemplate : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CategoryTemplateId;
		
		private string _Name;
		
		private string _TemplatePath;
		
		private int _DisplayOrder;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_Category> _Nop190_Categories;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCategoryTemplateIdChanging(int value);
    partial void OnCategoryTemplateIdChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnTemplatePathChanging(string value);
    partial void OnTemplatePathChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_CategoryTemplate()
		{
			this._Nop190_Categories = new EntitySet<Nop190_Category>(new Action<Nop190_Category>(this.attach_Nop190_Categories), new Action<Nop190_Category>(this.detach_Nop190_Categories));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CategoryTemplateId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CategoryTemplateId
		{
			get
			{
				return this._CategoryTemplateId;
			}
			set
			{
				if ((this._CategoryTemplateId != value))
				{
					this.OnCategoryTemplateIdChanging(value);
					this.SendPropertyChanging();
					this._CategoryTemplateId = value;
					this.SendPropertyChanged("CategoryTemplateId");
					this.OnCategoryTemplateIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TemplatePath", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string TemplatePath
		{
			get
			{
				return this._TemplatePath;
			}
			set
			{
				if ((this._TemplatePath != value))
				{
					this.OnTemplatePathChanging(value);
					this.SendPropertyChanging();
					this._TemplatePath = value;
					this.SendPropertyChanged("TemplatePath");
					this.OnTemplatePathChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CategoryTemplate_Nop190_Category", Storage="_Nop190_Categories", ThisKey="CategoryTemplateId", OtherKey="TemplateID")]
		public EntitySet<Nop190_Category> Nop190_Categories
		{
			get
			{
				return this._Nop190_Categories;
			}
			set
			{
				this._Nop190_Categories.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_Categories(Nop190_Category entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CategoryTemplate = this;
		}
		
		private void detach_Nop190_Categories(Nop190_Category entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CategoryTemplate = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CheckoutAttribute")]
	public partial class Nop190_CheckoutAttribute : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CheckoutAttributeID;
		
		private string _Name;
		
		private string _TextPrompt;
		
		private bool _IsRequired;
		
		private bool _ShippableProductRequired;
		
		private bool _IsTaxExempt;
		
		private int _TaxCategoryID;
		
		private int _AttributeControlTypeID;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_CheckoutAttributeLocalized> _Nop190_CheckoutAttributeLocalizeds;
		
		private EntitySet<Nop190_CheckoutAttributeValue> _Nop190_CheckoutAttributeValues;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCheckoutAttributeIDChanging(int value);
    partial void OnCheckoutAttributeIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnTextPromptChanging(string value);
    partial void OnTextPromptChanged();
    partial void OnIsRequiredChanging(bool value);
    partial void OnIsRequiredChanged();
    partial void OnShippableProductRequiredChanging(bool value);
    partial void OnShippableProductRequiredChanged();
    partial void OnIsTaxExemptChanging(bool value);
    partial void OnIsTaxExemptChanged();
    partial void OnTaxCategoryIDChanging(int value);
    partial void OnTaxCategoryIDChanged();
    partial void OnAttributeControlTypeIDChanging(int value);
    partial void OnAttributeControlTypeIDChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_CheckoutAttribute()
		{
			this._Nop190_CheckoutAttributeLocalizeds = new EntitySet<Nop190_CheckoutAttributeLocalized>(new Action<Nop190_CheckoutAttributeLocalized>(this.attach_Nop190_CheckoutAttributeLocalizeds), new Action<Nop190_CheckoutAttributeLocalized>(this.detach_Nop190_CheckoutAttributeLocalizeds));
			this._Nop190_CheckoutAttributeValues = new EntitySet<Nop190_CheckoutAttributeValue>(new Action<Nop190_CheckoutAttributeValue>(this.attach_Nop190_CheckoutAttributeValues), new Action<Nop190_CheckoutAttributeValue>(this.detach_Nop190_CheckoutAttributeValues));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CheckoutAttributeID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CheckoutAttributeID
		{
			get
			{
				return this._CheckoutAttributeID;
			}
			set
			{
				if ((this._CheckoutAttributeID != value))
				{
					this.OnCheckoutAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._CheckoutAttributeID = value;
					this.SendPropertyChanged("CheckoutAttributeID");
					this.OnCheckoutAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TextPrompt", DbType="NVarChar(300) NOT NULL", CanBeNull=false)]
		public string TextPrompt
		{
			get
			{
				return this._TextPrompt;
			}
			set
			{
				if ((this._TextPrompt != value))
				{
					this.OnTextPromptChanging(value);
					this.SendPropertyChanging();
					this._TextPrompt = value;
					this.SendPropertyChanged("TextPrompt");
					this.OnTextPromptChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsRequired", DbType="Bit NOT NULL")]
		public bool IsRequired
		{
			get
			{
				return this._IsRequired;
			}
			set
			{
				if ((this._IsRequired != value))
				{
					this.OnIsRequiredChanging(value);
					this.SendPropertyChanging();
					this._IsRequired = value;
					this.SendPropertyChanged("IsRequired");
					this.OnIsRequiredChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippableProductRequired", DbType="Bit NOT NULL")]
		public bool ShippableProductRequired
		{
			get
			{
				return this._ShippableProductRequired;
			}
			set
			{
				if ((this._ShippableProductRequired != value))
				{
					this.OnShippableProductRequiredChanging(value);
					this.SendPropertyChanging();
					this._ShippableProductRequired = value;
					this.SendPropertyChanged("ShippableProductRequired");
					this.OnShippableProductRequiredChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsTaxExempt", DbType="Bit NOT NULL")]
		public bool IsTaxExempt
		{
			get
			{
				return this._IsTaxExempt;
			}
			set
			{
				if ((this._IsTaxExempt != value))
				{
					this.OnIsTaxExemptChanging(value);
					this.SendPropertyChanging();
					this._IsTaxExempt = value;
					this.SendPropertyChanged("IsTaxExempt");
					this.OnIsTaxExemptChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaxCategoryID", DbType="Int NOT NULL")]
		public int TaxCategoryID
		{
			get
			{
				return this._TaxCategoryID;
			}
			set
			{
				if ((this._TaxCategoryID != value))
				{
					this.OnTaxCategoryIDChanging(value);
					this.SendPropertyChanging();
					this._TaxCategoryID = value;
					this.SendPropertyChanged("TaxCategoryID");
					this.OnTaxCategoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AttributeControlTypeID", DbType="Int NOT NULL")]
		public int AttributeControlTypeID
		{
			get
			{
				return this._AttributeControlTypeID;
			}
			set
			{
				if ((this._AttributeControlTypeID != value))
				{
					this.OnAttributeControlTypeIDChanging(value);
					this.SendPropertyChanging();
					this._AttributeControlTypeID = value;
					this.SendPropertyChanged("AttributeControlTypeID");
					this.OnAttributeControlTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CheckoutAttribute_Nop190_CheckoutAttributeLocalized", Storage="_Nop190_CheckoutAttributeLocalizeds", ThisKey="CheckoutAttributeID", OtherKey="CheckoutAttributeID")]
		public EntitySet<Nop190_CheckoutAttributeLocalized> Nop190_CheckoutAttributeLocalizeds
		{
			get
			{
				return this._Nop190_CheckoutAttributeLocalizeds;
			}
			set
			{
				this._Nop190_CheckoutAttributeLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CheckoutAttribute_Nop190_CheckoutAttributeValue", Storage="_Nop190_CheckoutAttributeValues", ThisKey="CheckoutAttributeID", OtherKey="CheckoutAttributeID")]
		public EntitySet<Nop190_CheckoutAttributeValue> Nop190_CheckoutAttributeValues
		{
			get
			{
				return this._Nop190_CheckoutAttributeValues;
			}
			set
			{
				this._Nop190_CheckoutAttributeValues.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_CheckoutAttributeLocalizeds(Nop190_CheckoutAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CheckoutAttribute = this;
		}
		
		private void detach_Nop190_CheckoutAttributeLocalizeds(Nop190_CheckoutAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CheckoutAttribute = null;
		}
		
		private void attach_Nop190_CheckoutAttributeValues(Nop190_CheckoutAttributeValue entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CheckoutAttribute = this;
		}
		
		private void detach_Nop190_CheckoutAttributeValues(Nop190_CheckoutAttributeValue entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CheckoutAttribute = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CheckoutAttributeLocalized")]
	public partial class Nop190_CheckoutAttributeLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CheckoutAttributeLocalizedID;
		
		private int _CheckoutAttributeID;
		
		private int _LanguageID;
		
		private string _Name;
		
		private string _TextPrompt;
		
		private EntityRef<Nop190_CheckoutAttribute> _Nop190_CheckoutAttribute;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCheckoutAttributeLocalizedIDChanging(int value);
    partial void OnCheckoutAttributeLocalizedIDChanged();
    partial void OnCheckoutAttributeIDChanging(int value);
    partial void OnCheckoutAttributeIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnTextPromptChanging(string value);
    partial void OnTextPromptChanged();
    #endregion
		
		public Nop190_CheckoutAttributeLocalized()
		{
			this._Nop190_CheckoutAttribute = default(EntityRef<Nop190_CheckoutAttribute>);
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CheckoutAttributeLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CheckoutAttributeLocalizedID
		{
			get
			{
				return this._CheckoutAttributeLocalizedID;
			}
			set
			{
				if ((this._CheckoutAttributeLocalizedID != value))
				{
					this.OnCheckoutAttributeLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._CheckoutAttributeLocalizedID = value;
					this.SendPropertyChanged("CheckoutAttributeLocalizedID");
					this.OnCheckoutAttributeLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CheckoutAttributeID", DbType="Int NOT NULL")]
		public int CheckoutAttributeID
		{
			get
			{
				return this._CheckoutAttributeID;
			}
			set
			{
				if ((this._CheckoutAttributeID != value))
				{
					if (this._Nop190_CheckoutAttribute.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCheckoutAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._CheckoutAttributeID = value;
					this.SendPropertyChanged("CheckoutAttributeID");
					this.OnCheckoutAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TextPrompt", DbType="NVarChar(300) NOT NULL", CanBeNull=false)]
		public string TextPrompt
		{
			get
			{
				return this._TextPrompt;
			}
			set
			{
				if ((this._TextPrompt != value))
				{
					this.OnTextPromptChanging(value);
					this.SendPropertyChanging();
					this._TextPrompt = value;
					this.SendPropertyChanged("TextPrompt");
					this.OnTextPromptChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CheckoutAttribute_Nop190_CheckoutAttributeLocalized", Storage="_Nop190_CheckoutAttribute", ThisKey="CheckoutAttributeID", OtherKey="CheckoutAttributeID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_CheckoutAttribute Nop190_CheckoutAttribute
		{
			get
			{
				return this._Nop190_CheckoutAttribute.Entity;
			}
			set
			{
				Nop190_CheckoutAttribute previousValue = this._Nop190_CheckoutAttribute.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_CheckoutAttribute.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_CheckoutAttribute.Entity = null;
						previousValue.Nop190_CheckoutAttributeLocalizeds.Remove(this);
					}
					this._Nop190_CheckoutAttribute.Entity = value;
					if ((value != null))
					{
						value.Nop190_CheckoutAttributeLocalizeds.Add(this);
						this._CheckoutAttributeID = value.CheckoutAttributeID;
					}
					else
					{
						this._CheckoutAttributeID = default(int);
					}
					this.SendPropertyChanged("Nop190_CheckoutAttribute");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_CheckoutAttributeLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_CheckoutAttributeLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_CheckoutAttributeLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CheckoutAttributeValue")]
	public partial class Nop190_CheckoutAttributeValue : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CheckoutAttributeValueID;
		
		private int _CheckoutAttributeID;
		
		private string _Name;
		
		private decimal _PriceAdjustment;
		
		private decimal _WeightAdjustment;
		
		private bool _IsPreSelected;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_CheckoutAttributeValueLocalized> _Nop190_CheckoutAttributeValueLocalizeds;
		
		private EntityRef<Nop190_CheckoutAttribute> _Nop190_CheckoutAttribute;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCheckoutAttributeValueIDChanging(int value);
    partial void OnCheckoutAttributeValueIDChanged();
    partial void OnCheckoutAttributeIDChanging(int value);
    partial void OnCheckoutAttributeIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnPriceAdjustmentChanging(decimal value);
    partial void OnPriceAdjustmentChanged();
    partial void OnWeightAdjustmentChanging(decimal value);
    partial void OnWeightAdjustmentChanged();
    partial void OnIsPreSelectedChanging(bool value);
    partial void OnIsPreSelectedChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_CheckoutAttributeValue()
		{
			this._Nop190_CheckoutAttributeValueLocalizeds = new EntitySet<Nop190_CheckoutAttributeValueLocalized>(new Action<Nop190_CheckoutAttributeValueLocalized>(this.attach_Nop190_CheckoutAttributeValueLocalizeds), new Action<Nop190_CheckoutAttributeValueLocalized>(this.detach_Nop190_CheckoutAttributeValueLocalizeds));
			this._Nop190_CheckoutAttribute = default(EntityRef<Nop190_CheckoutAttribute>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CheckoutAttributeValueID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CheckoutAttributeValueID
		{
			get
			{
				return this._CheckoutAttributeValueID;
			}
			set
			{
				if ((this._CheckoutAttributeValueID != value))
				{
					this.OnCheckoutAttributeValueIDChanging(value);
					this.SendPropertyChanging();
					this._CheckoutAttributeValueID = value;
					this.SendPropertyChanged("CheckoutAttributeValueID");
					this.OnCheckoutAttributeValueIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CheckoutAttributeID", DbType="Int NOT NULL")]
		public int CheckoutAttributeID
		{
			get
			{
				return this._CheckoutAttributeID;
			}
			set
			{
				if ((this._CheckoutAttributeID != value))
				{
					if (this._Nop190_CheckoutAttribute.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCheckoutAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._CheckoutAttributeID = value;
					this.SendPropertyChanged("CheckoutAttributeID");
					this.OnCheckoutAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceAdjustment", DbType="Money NOT NULL")]
		public decimal PriceAdjustment
		{
			get
			{
				return this._PriceAdjustment;
			}
			set
			{
				if ((this._PriceAdjustment != value))
				{
					this.OnPriceAdjustmentChanging(value);
					this.SendPropertyChanging();
					this._PriceAdjustment = value;
					this.SendPropertyChanged("PriceAdjustment");
					this.OnPriceAdjustmentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WeightAdjustment", DbType="Decimal(18,4) NOT NULL")]
		public decimal WeightAdjustment
		{
			get
			{
				return this._WeightAdjustment;
			}
			set
			{
				if ((this._WeightAdjustment != value))
				{
					this.OnWeightAdjustmentChanging(value);
					this.SendPropertyChanging();
					this._WeightAdjustment = value;
					this.SendPropertyChanged("WeightAdjustment");
					this.OnWeightAdjustmentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsPreSelected", DbType="Bit NOT NULL")]
		public bool IsPreSelected
		{
			get
			{
				return this._IsPreSelected;
			}
			set
			{
				if ((this._IsPreSelected != value))
				{
					this.OnIsPreSelectedChanging(value);
					this.SendPropertyChanging();
					this._IsPreSelected = value;
					this.SendPropertyChanged("IsPreSelected");
					this.OnIsPreSelectedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CheckoutAttributeValue_Nop190_CheckoutAttributeValueLocalized", Storage="_Nop190_CheckoutAttributeValueLocalizeds", ThisKey="CheckoutAttributeValueID", OtherKey="CheckoutAttributeValueID")]
		public EntitySet<Nop190_CheckoutAttributeValueLocalized> Nop190_CheckoutAttributeValueLocalizeds
		{
			get
			{
				return this._Nop190_CheckoutAttributeValueLocalizeds;
			}
			set
			{
				this._Nop190_CheckoutAttributeValueLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CheckoutAttribute_Nop190_CheckoutAttributeValue", Storage="_Nop190_CheckoutAttribute", ThisKey="CheckoutAttributeID", OtherKey="CheckoutAttributeID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_CheckoutAttribute Nop190_CheckoutAttribute
		{
			get
			{
				return this._Nop190_CheckoutAttribute.Entity;
			}
			set
			{
				Nop190_CheckoutAttribute previousValue = this._Nop190_CheckoutAttribute.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_CheckoutAttribute.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_CheckoutAttribute.Entity = null;
						previousValue.Nop190_CheckoutAttributeValues.Remove(this);
					}
					this._Nop190_CheckoutAttribute.Entity = value;
					if ((value != null))
					{
						value.Nop190_CheckoutAttributeValues.Add(this);
						this._CheckoutAttributeID = value.CheckoutAttributeID;
					}
					else
					{
						this._CheckoutAttributeID = default(int);
					}
					this.SendPropertyChanged("Nop190_CheckoutAttribute");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_CheckoutAttributeValueLocalizeds(Nop190_CheckoutAttributeValueLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CheckoutAttributeValue = this;
		}
		
		private void detach_Nop190_CheckoutAttributeValueLocalizeds(Nop190_CheckoutAttributeValueLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CheckoutAttributeValue = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CheckoutAttributeValueLocalized")]
	public partial class Nop190_CheckoutAttributeValueLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CheckoutAttributeValueLocalizedID;
		
		private int _CheckoutAttributeValueID;
		
		private int _LanguageID;
		
		private string _Name;
		
		private EntityRef<Nop190_CheckoutAttributeValue> _Nop190_CheckoutAttributeValue;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCheckoutAttributeValueLocalizedIDChanging(int value);
    partial void OnCheckoutAttributeValueLocalizedIDChanged();
    partial void OnCheckoutAttributeValueIDChanging(int value);
    partial void OnCheckoutAttributeValueIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    #endregion
		
		public Nop190_CheckoutAttributeValueLocalized()
		{
			this._Nop190_CheckoutAttributeValue = default(EntityRef<Nop190_CheckoutAttributeValue>);
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CheckoutAttributeValueLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CheckoutAttributeValueLocalizedID
		{
			get
			{
				return this._CheckoutAttributeValueLocalizedID;
			}
			set
			{
				if ((this._CheckoutAttributeValueLocalizedID != value))
				{
					this.OnCheckoutAttributeValueLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._CheckoutAttributeValueLocalizedID = value;
					this.SendPropertyChanged("CheckoutAttributeValueLocalizedID");
					this.OnCheckoutAttributeValueLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CheckoutAttributeValueID", DbType="Int NOT NULL")]
		public int CheckoutAttributeValueID
		{
			get
			{
				return this._CheckoutAttributeValueID;
			}
			set
			{
				if ((this._CheckoutAttributeValueID != value))
				{
					if (this._Nop190_CheckoutAttributeValue.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCheckoutAttributeValueIDChanging(value);
					this.SendPropertyChanging();
					this._CheckoutAttributeValueID = value;
					this.SendPropertyChanged("CheckoutAttributeValueID");
					this.OnCheckoutAttributeValueIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CheckoutAttributeValue_Nop190_CheckoutAttributeValueLocalized", Storage="_Nop190_CheckoutAttributeValue", ThisKey="CheckoutAttributeValueID", OtherKey="CheckoutAttributeValueID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_CheckoutAttributeValue Nop190_CheckoutAttributeValue
		{
			get
			{
				return this._Nop190_CheckoutAttributeValue.Entity;
			}
			set
			{
				Nop190_CheckoutAttributeValue previousValue = this._Nop190_CheckoutAttributeValue.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_CheckoutAttributeValue.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_CheckoutAttributeValue.Entity = null;
						previousValue.Nop190_CheckoutAttributeValueLocalizeds.Remove(this);
					}
					this._Nop190_CheckoutAttributeValue.Entity = value;
					if ((value != null))
					{
						value.Nop190_CheckoutAttributeValueLocalizeds.Add(this);
						this._CheckoutAttributeValueID = value.CheckoutAttributeValueID;
					}
					else
					{
						this._CheckoutAttributeValueID = default(int);
					}
					this.SendPropertyChanged("Nop190_CheckoutAttributeValue");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_CheckoutAttributeValueLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_CheckoutAttributeValueLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_CheckoutAttributeValueLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Country")]
	public partial class Nop190_Country : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CountryID;
		
		private string _Name;
		
		private bool _AllowsRegistration;
		
		private bool _AllowsBilling;
		
		private bool _AllowsShipping;
		
		private string _TwoLetterISOCode;
		
		private string _ThreeLetterISOCode;
		
		private int _NumericISOCode;
		
		private bool _SubjectToVAT;
		
		private bool _Published;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_PaymentMethod_RestrictedCountry> _Nop190_PaymentMethod_RestrictedCountries;
		
		private EntitySet<Nop190_ShippingByWeightAndCountry> _Nop190_ShippingByWeightAndCountries;
		
		private EntitySet<Nop190_ShippingMethod_RestrictedCountry> _Nop190_ShippingMethod_RestrictedCountries;
		
		private EntitySet<Nop190_StateProvince> _Nop190_StateProvinces;
		
		private EntitySet<Nop190_TaxRate> _Nop190_TaxRates;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCountryIDChanging(int value);
    partial void OnCountryIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnAllowsRegistrationChanging(bool value);
    partial void OnAllowsRegistrationChanged();
    partial void OnAllowsBillingChanging(bool value);
    partial void OnAllowsBillingChanged();
    partial void OnAllowsShippingChanging(bool value);
    partial void OnAllowsShippingChanged();
    partial void OnTwoLetterISOCodeChanging(string value);
    partial void OnTwoLetterISOCodeChanged();
    partial void OnThreeLetterISOCodeChanging(string value);
    partial void OnThreeLetterISOCodeChanged();
    partial void OnNumericISOCodeChanging(int value);
    partial void OnNumericISOCodeChanged();
    partial void OnSubjectToVATChanging(bool value);
    partial void OnSubjectToVATChanged();
    partial void OnPublishedChanging(bool value);
    partial void OnPublishedChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_Country()
		{
			this._Nop190_PaymentMethod_RestrictedCountries = new EntitySet<Nop190_PaymentMethod_RestrictedCountry>(new Action<Nop190_PaymentMethod_RestrictedCountry>(this.attach_Nop190_PaymentMethod_RestrictedCountries), new Action<Nop190_PaymentMethod_RestrictedCountry>(this.detach_Nop190_PaymentMethod_RestrictedCountries));
			this._Nop190_ShippingByWeightAndCountries = new EntitySet<Nop190_ShippingByWeightAndCountry>(new Action<Nop190_ShippingByWeightAndCountry>(this.attach_Nop190_ShippingByWeightAndCountries), new Action<Nop190_ShippingByWeightAndCountry>(this.detach_Nop190_ShippingByWeightAndCountries));
			this._Nop190_ShippingMethod_RestrictedCountries = new EntitySet<Nop190_ShippingMethod_RestrictedCountry>(new Action<Nop190_ShippingMethod_RestrictedCountry>(this.attach_Nop190_ShippingMethod_RestrictedCountries), new Action<Nop190_ShippingMethod_RestrictedCountry>(this.detach_Nop190_ShippingMethod_RestrictedCountries));
			this._Nop190_StateProvinces = new EntitySet<Nop190_StateProvince>(new Action<Nop190_StateProvince>(this.attach_Nop190_StateProvinces), new Action<Nop190_StateProvince>(this.detach_Nop190_StateProvinces));
			this._Nop190_TaxRates = new EntitySet<Nop190_TaxRate>(new Action<Nop190_TaxRate>(this.attach_Nop190_TaxRates), new Action<Nop190_TaxRate>(this.detach_Nop190_TaxRates));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CountryID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CountryID
		{
			get
			{
				return this._CountryID;
			}
			set
			{
				if ((this._CountryID != value))
				{
					this.OnCountryIDChanging(value);
					this.SendPropertyChanging();
					this._CountryID = value;
					this.SendPropertyChanged("CountryID");
					this.OnCountryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AllowsRegistration", DbType="Bit NOT NULL")]
		public bool AllowsRegistration
		{
			get
			{
				return this._AllowsRegistration;
			}
			set
			{
				if ((this._AllowsRegistration != value))
				{
					this.OnAllowsRegistrationChanging(value);
					this.SendPropertyChanging();
					this._AllowsRegistration = value;
					this.SendPropertyChanged("AllowsRegistration");
					this.OnAllowsRegistrationChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AllowsBilling", DbType="Bit NOT NULL")]
		public bool AllowsBilling
		{
			get
			{
				return this._AllowsBilling;
			}
			set
			{
				if ((this._AllowsBilling != value))
				{
					this.OnAllowsBillingChanging(value);
					this.SendPropertyChanging();
					this._AllowsBilling = value;
					this.SendPropertyChanged("AllowsBilling");
					this.OnAllowsBillingChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AllowsShipping", DbType="Bit NOT NULL")]
		public bool AllowsShipping
		{
			get
			{
				return this._AllowsShipping;
			}
			set
			{
				if ((this._AllowsShipping != value))
				{
					this.OnAllowsShippingChanging(value);
					this.SendPropertyChanging();
					this._AllowsShipping = value;
					this.SendPropertyChanged("AllowsShipping");
					this.OnAllowsShippingChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TwoLetterISOCode", DbType="NVarChar(2) NOT NULL", CanBeNull=false)]
		public string TwoLetterISOCode
		{
			get
			{
				return this._TwoLetterISOCode;
			}
			set
			{
				if ((this._TwoLetterISOCode != value))
				{
					this.OnTwoLetterISOCodeChanging(value);
					this.SendPropertyChanging();
					this._TwoLetterISOCode = value;
					this.SendPropertyChanged("TwoLetterISOCode");
					this.OnTwoLetterISOCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ThreeLetterISOCode", DbType="NVarChar(3) NOT NULL", CanBeNull=false)]
		public string ThreeLetterISOCode
		{
			get
			{
				return this._ThreeLetterISOCode;
			}
			set
			{
				if ((this._ThreeLetterISOCode != value))
				{
					this.OnThreeLetterISOCodeChanging(value);
					this.SendPropertyChanging();
					this._ThreeLetterISOCode = value;
					this.SendPropertyChanged("ThreeLetterISOCode");
					this.OnThreeLetterISOCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NumericISOCode", DbType="Int NOT NULL")]
		public int NumericISOCode
		{
			get
			{
				return this._NumericISOCode;
			}
			set
			{
				if ((this._NumericISOCode != value))
				{
					this.OnNumericISOCodeChanging(value);
					this.SendPropertyChanging();
					this._NumericISOCode = value;
					this.SendPropertyChanged("NumericISOCode");
					this.OnNumericISOCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubjectToVAT", DbType="Bit NOT NULL")]
		public bool SubjectToVAT
		{
			get
			{
				return this._SubjectToVAT;
			}
			set
			{
				if ((this._SubjectToVAT != value))
				{
					this.OnSubjectToVATChanging(value);
					this.SendPropertyChanging();
					this._SubjectToVAT = value;
					this.SendPropertyChanged("SubjectToVAT");
					this.OnSubjectToVATChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Published", DbType="Bit NOT NULL")]
		public bool Published
		{
			get
			{
				return this._Published;
			}
			set
			{
				if ((this._Published != value))
				{
					this.OnPublishedChanging(value);
					this.SendPropertyChanging();
					this._Published = value;
					this.SendPropertyChanged("Published");
					this.OnPublishedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Country_Nop190_PaymentMethod_RestrictedCountry", Storage="_Nop190_PaymentMethod_RestrictedCountries", ThisKey="CountryID", OtherKey="CountryID")]
		public EntitySet<Nop190_PaymentMethod_RestrictedCountry> Nop190_PaymentMethod_RestrictedCountries
		{
			get
			{
				return this._Nop190_PaymentMethod_RestrictedCountries;
			}
			set
			{
				this._Nop190_PaymentMethod_RestrictedCountries.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Country_Nop190_ShippingByWeightAndCountry", Storage="_Nop190_ShippingByWeightAndCountries", ThisKey="CountryID", OtherKey="CountryID")]
		public EntitySet<Nop190_ShippingByWeightAndCountry> Nop190_ShippingByWeightAndCountries
		{
			get
			{
				return this._Nop190_ShippingByWeightAndCountries;
			}
			set
			{
				this._Nop190_ShippingByWeightAndCountries.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Country_Nop190_ShippingMethod_RestrictedCountry", Storage="_Nop190_ShippingMethod_RestrictedCountries", ThisKey="CountryID", OtherKey="CountryID")]
		public EntitySet<Nop190_ShippingMethod_RestrictedCountry> Nop190_ShippingMethod_RestrictedCountries
		{
			get
			{
				return this._Nop190_ShippingMethod_RestrictedCountries;
			}
			set
			{
				this._Nop190_ShippingMethod_RestrictedCountries.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Country_Nop190_StateProvince", Storage="_Nop190_StateProvinces", ThisKey="CountryID", OtherKey="CountryID")]
		public EntitySet<Nop190_StateProvince> Nop190_StateProvinces
		{
			get
			{
				return this._Nop190_StateProvinces;
			}
			set
			{
				this._Nop190_StateProvinces.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Country_Nop190_TaxRate", Storage="_Nop190_TaxRates", ThisKey="CountryID", OtherKey="CountryID")]
		public EntitySet<Nop190_TaxRate> Nop190_TaxRates
		{
			get
			{
				return this._Nop190_TaxRates;
			}
			set
			{
				this._Nop190_TaxRates.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_PaymentMethod_RestrictedCountries(Nop190_PaymentMethod_RestrictedCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Country = this;
		}
		
		private void detach_Nop190_PaymentMethod_RestrictedCountries(Nop190_PaymentMethod_RestrictedCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Country = null;
		}
		
		private void attach_Nop190_ShippingByWeightAndCountries(Nop190_ShippingByWeightAndCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Country = this;
		}
		
		private void detach_Nop190_ShippingByWeightAndCountries(Nop190_ShippingByWeightAndCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Country = null;
		}
		
		private void attach_Nop190_ShippingMethod_RestrictedCountries(Nop190_ShippingMethod_RestrictedCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Country = this;
		}
		
		private void detach_Nop190_ShippingMethod_RestrictedCountries(Nop190_ShippingMethod_RestrictedCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Country = null;
		}
		
		private void attach_Nop190_StateProvinces(Nop190_StateProvince entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Country = this;
		}
		
		private void detach_Nop190_StateProvinces(Nop190_StateProvince entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Country = null;
		}
		
		private void attach_Nop190_TaxRates(Nop190_TaxRate entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Country = this;
		}
		
		private void detach_Nop190_TaxRates(Nop190_TaxRate entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Country = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CreditCardType")]
	public partial class Nop190_CreditCardType : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CreditCardTypeID;
		
		private string _Name;
		
		private string _SystemKeyword;
		
		private int _DisplayOrder;
		
		private bool _Deleted;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCreditCardTypeIDChanging(int value);
    partial void OnCreditCardTypeIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnSystemKeywordChanging(string value);
    partial void OnSystemKeywordChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    #endregion
		
		public Nop190_CreditCardType()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreditCardTypeID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CreditCardTypeID
		{
			get
			{
				return this._CreditCardTypeID;
			}
			set
			{
				if ((this._CreditCardTypeID != value))
				{
					this.OnCreditCardTypeIDChanging(value);
					this.SendPropertyChanging();
					this._CreditCardTypeID = value;
					this.SendPropertyChanged("CreditCardTypeID");
					this.OnCreditCardTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SystemKeyword", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SystemKeyword
		{
			get
			{
				return this._SystemKeyword;
			}
			set
			{
				if ((this._SystemKeyword != value))
				{
					this.OnSystemKeywordChanging(value);
					this.SendPropertyChanging();
					this._SystemKeyword = value;
					this.SendPropertyChanged("SystemKeyword");
					this.OnSystemKeywordChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CrossSellProduct")]
	public partial class Nop190_CrossSellProduct : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CrossSellProductId;
		
		private int _ProductId1;
		
		private int _ProductId2;
		
		private EntityRef<Nop190_Product> _Nop190_Product;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCrossSellProductIdChanging(int value);
    partial void OnCrossSellProductIdChanged();
    partial void OnProductId1Changing(int value);
    partial void OnProductId1Changed();
    partial void OnProductId2Changing(int value);
    partial void OnProductId2Changed();
    #endregion
		
		public Nop190_CrossSellProduct()
		{
			this._Nop190_Product = default(EntityRef<Nop190_Product>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CrossSellProductId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CrossSellProductId
		{
			get
			{
				return this._CrossSellProductId;
			}
			set
			{
				if ((this._CrossSellProductId != value))
				{
					this.OnCrossSellProductIdChanging(value);
					this.SendPropertyChanging();
					this._CrossSellProductId = value;
					this.SendPropertyChanged("CrossSellProductId");
					this.OnCrossSellProductIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductId1", DbType="Int NOT NULL")]
		public int ProductId1
		{
			get
			{
				return this._ProductId1;
			}
			set
			{
				if ((this._ProductId1 != value))
				{
					if (this._Nop190_Product.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductId1Changing(value);
					this.SendPropertyChanging();
					this._ProductId1 = value;
					this.SendPropertyChanged("ProductId1");
					this.OnProductId1Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductId2", DbType="Int NOT NULL")]
		public int ProductId2
		{
			get
			{
				return this._ProductId2;
			}
			set
			{
				if ((this._ProductId2 != value))
				{
					this.OnProductId2Changing(value);
					this.SendPropertyChanging();
					this._ProductId2 = value;
					this.SendPropertyChanged("ProductId2");
					this.OnProductId2Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_CrossSellProduct", Storage="_Nop190_Product", ThisKey="ProductId1", OtherKey="ProductId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Product Nop190_Product
		{
			get
			{
				return this._Nop190_Product.Entity;
			}
			set
			{
				Nop190_Product previousValue = this._Nop190_Product.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Product.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Product.Entity = null;
						previousValue.Nop190_CrossSellProducts.Remove(this);
					}
					this._Nop190_Product.Entity = value;
					if ((value != null))
					{
						value.Nop190_CrossSellProducts.Add(this);
						this._ProductId1 = value.ProductId;
					}
					else
					{
						this._ProductId1 = default(int);
					}
					this.SendPropertyChanged("Nop190_Product");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Currency")]
	public partial class Nop190_Currency : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CurrencyID;
		
		private string _Name;
		
		private string _CurrencyCode;
		
		private string _DisplayLocale;
		
		private decimal _Rate;
		
		private string _CustomFormatting;
		
		private bool _Published;
		
		private int _DisplayOrder;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCurrencyIDChanging(int value);
    partial void OnCurrencyIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnCurrencyCodeChanging(string value);
    partial void OnCurrencyCodeChanged();
    partial void OnDisplayLocaleChanging(string value);
    partial void OnDisplayLocaleChanged();
    partial void OnRateChanging(decimal value);
    partial void OnRateChanged();
    partial void OnCustomFormattingChanging(string value);
    partial void OnCustomFormattingChanged();
    partial void OnPublishedChanging(bool value);
    partial void OnPublishedChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_Currency()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CurrencyID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CurrencyID
		{
			get
			{
				return this._CurrencyID;
			}
			set
			{
				if ((this._CurrencyID != value))
				{
					this.OnCurrencyIDChanging(value);
					this.SendPropertyChanging();
					this._CurrencyID = value;
					this.SendPropertyChanged("CurrencyID");
					this.OnCurrencyIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CurrencyCode", DbType="NVarChar(5) NOT NULL", CanBeNull=false)]
		public string CurrencyCode
		{
			get
			{
				return this._CurrencyCode;
			}
			set
			{
				if ((this._CurrencyCode != value))
				{
					this.OnCurrencyCodeChanging(value);
					this.SendPropertyChanging();
					this._CurrencyCode = value;
					this.SendPropertyChanged("CurrencyCode");
					this.OnCurrencyCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayLocale", DbType="NVarChar(50)")]
		public string DisplayLocale
		{
			get
			{
				return this._DisplayLocale;
			}
			set
			{
				if ((this._DisplayLocale != value))
				{
					this.OnDisplayLocaleChanging(value);
					this.SendPropertyChanging();
					this._DisplayLocale = value;
					this.SendPropertyChanged("DisplayLocale");
					this.OnDisplayLocaleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Rate", DbType="Decimal(18,4) NOT NULL")]
		public decimal Rate
		{
			get
			{
				return this._Rate;
			}
			set
			{
				if ((this._Rate != value))
				{
					this.OnRateChanging(value);
					this.SendPropertyChanging();
					this._Rate = value;
					this.SendPropertyChanged("Rate");
					this.OnRateChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomFormatting", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string CustomFormatting
		{
			get
			{
				return this._CustomFormatting;
			}
			set
			{
				if ((this._CustomFormatting != value))
				{
					this.OnCustomFormattingChanging(value);
					this.SendPropertyChanging();
					this._CustomFormatting = value;
					this.SendPropertyChanged("CustomFormatting");
					this.OnCustomFormattingChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Published", DbType="Bit NOT NULL")]
		public bool Published
		{
			get
			{
				return this._Published;
			}
			set
			{
				if ((this._Published != value))
				{
					this.OnPublishedChanging(value);
					this.SendPropertyChanging();
					this._Published = value;
					this.SendPropertyChanged("Published");
					this.OnPublishedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Customer")]
	public partial class Nop190_Customer : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CustomerID;
		
		private System.Guid _CustomerGUID;
		
		private string _Email;
		
		private string _Username;
		
		private string _PasswordHash;
		
		private string _SaltKey;
		
		private int _AffiliateID;
		
		private int _BillingAddressID;
		
		private int _ShippingAddressID;
		
		private int _LastPaymentMethodID;
		
		private string _LastAppliedCouponCode;
		
		private string _GiftCardCouponCodes;
		
		private string _CheckoutAttributes;
		
		private int _LanguageID;
		
		private int _CurrencyID;
		
		private int _TaxDisplayTypeID;
		
		private bool _IsTaxExempt;
		
		private bool _IsAdmin;
		
		private bool _IsGuest;
		
		private bool _IsForumModerator;
		
		private int _TotalForumPosts;
		
		private string _Signature;
		
		private string _AdminComment;
		
		private bool _Active;
		
		private bool _Deleted;
		
		private System.DateTime _RegistrationDate;
		
		private string _TimeZoneID;
		
		private int _AvatarID;
		
		private System.Nullable<System.DateTime> _DateOfBirth;
		
		private EntitySet<Nop190_ActivityLog> _Nop190_ActivityLogs;
		
		private EntitySet<Nop190_Address> _Nop190_Addresses;
		
		private EntitySet<Nop190_BlogPost> _Nop190_BlogPosts;
		
		private EntitySet<Nop190_Customer_CustomerRole_Mapping> _Nop190_Customer_CustomerRole_Mappings;
		
		private EntitySet<Nop190_CustomerAttribute> _Nop190_CustomerAttributes;
		
		private EntitySet<Nop190_DiscountUsageHistory> _Nop190_DiscountUsageHistories;
		
		private EntitySet<Nop190_GiftCardUsageHistory> _Nop190_GiftCardUsageHistories;
		
		private EntitySet<Nop190_PollVotingRecord> _Nop190_PollVotingRecords;
		
		private EntitySet<Nop190_ProductRating> _Nop190_ProductRatings;
		
		private EntitySet<Nop190_ProductReview> _Nop190_ProductReviews;
		
		private EntitySet<Nop190_ReturnRequest> _Nop190_ReturnRequests;
		
		private EntitySet<Nop190_RewardPointsHistory> _Nop190_RewardPointsHistories;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnCustomerGUIDChanging(System.Guid value);
    partial void OnCustomerGUIDChanged();
    partial void OnEmailChanging(string value);
    partial void OnEmailChanged();
    partial void OnUsernameChanging(string value);
    partial void OnUsernameChanged();
    partial void OnPasswordHashChanging(string value);
    partial void OnPasswordHashChanged();
    partial void OnSaltKeyChanging(string value);
    partial void OnSaltKeyChanged();
    partial void OnAffiliateIDChanging(int value);
    partial void OnAffiliateIDChanged();
    partial void OnBillingAddressIDChanging(int value);
    partial void OnBillingAddressIDChanged();
    partial void OnShippingAddressIDChanging(int value);
    partial void OnShippingAddressIDChanged();
    partial void OnLastPaymentMethodIDChanging(int value);
    partial void OnLastPaymentMethodIDChanged();
    partial void OnLastAppliedCouponCodeChanging(string value);
    partial void OnLastAppliedCouponCodeChanged();
    partial void OnGiftCardCouponCodesChanging(string value);
    partial void OnGiftCardCouponCodesChanged();
    partial void OnCheckoutAttributesChanging(string value);
    partial void OnCheckoutAttributesChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnCurrencyIDChanging(int value);
    partial void OnCurrencyIDChanged();
    partial void OnTaxDisplayTypeIDChanging(int value);
    partial void OnTaxDisplayTypeIDChanged();
    partial void OnIsTaxExemptChanging(bool value);
    partial void OnIsTaxExemptChanged();
    partial void OnIsAdminChanging(bool value);
    partial void OnIsAdminChanged();
    partial void OnIsGuestChanging(bool value);
    partial void OnIsGuestChanged();
    partial void OnIsForumModeratorChanging(bool value);
    partial void OnIsForumModeratorChanged();
    partial void OnTotalForumPostsChanging(int value);
    partial void OnTotalForumPostsChanged();
    partial void OnSignatureChanging(string value);
    partial void OnSignatureChanged();
    partial void OnAdminCommentChanging(string value);
    partial void OnAdminCommentChanged();
    partial void OnActiveChanging(bool value);
    partial void OnActiveChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    partial void OnRegistrationDateChanging(System.DateTime value);
    partial void OnRegistrationDateChanged();
    partial void OnTimeZoneIDChanging(string value);
    partial void OnTimeZoneIDChanged();
    partial void OnAvatarIDChanging(int value);
    partial void OnAvatarIDChanged();
    partial void OnDateOfBirthChanging(System.Nullable<System.DateTime> value);
    partial void OnDateOfBirthChanged();
    #endregion
		
		public Nop190_Customer()
		{
			this._Nop190_ActivityLogs = new EntitySet<Nop190_ActivityLog>(new Action<Nop190_ActivityLog>(this.attach_Nop190_ActivityLogs), new Action<Nop190_ActivityLog>(this.detach_Nop190_ActivityLogs));
			this._Nop190_Addresses = new EntitySet<Nop190_Address>(new Action<Nop190_Address>(this.attach_Nop190_Addresses), new Action<Nop190_Address>(this.detach_Nop190_Addresses));
			this._Nop190_BlogPosts = new EntitySet<Nop190_BlogPost>(new Action<Nop190_BlogPost>(this.attach_Nop190_BlogPosts), new Action<Nop190_BlogPost>(this.detach_Nop190_BlogPosts));
			this._Nop190_Customer_CustomerRole_Mappings = new EntitySet<Nop190_Customer_CustomerRole_Mapping>(new Action<Nop190_Customer_CustomerRole_Mapping>(this.attach_Nop190_Customer_CustomerRole_Mappings), new Action<Nop190_Customer_CustomerRole_Mapping>(this.detach_Nop190_Customer_CustomerRole_Mappings));
			this._Nop190_CustomerAttributes = new EntitySet<Nop190_CustomerAttribute>(new Action<Nop190_CustomerAttribute>(this.attach_Nop190_CustomerAttributes), new Action<Nop190_CustomerAttribute>(this.detach_Nop190_CustomerAttributes));
			this._Nop190_DiscountUsageHistories = new EntitySet<Nop190_DiscountUsageHistory>(new Action<Nop190_DiscountUsageHistory>(this.attach_Nop190_DiscountUsageHistories), new Action<Nop190_DiscountUsageHistory>(this.detach_Nop190_DiscountUsageHistories));
			this._Nop190_GiftCardUsageHistories = new EntitySet<Nop190_GiftCardUsageHistory>(new Action<Nop190_GiftCardUsageHistory>(this.attach_Nop190_GiftCardUsageHistories), new Action<Nop190_GiftCardUsageHistory>(this.detach_Nop190_GiftCardUsageHistories));
			this._Nop190_PollVotingRecords = new EntitySet<Nop190_PollVotingRecord>(new Action<Nop190_PollVotingRecord>(this.attach_Nop190_PollVotingRecords), new Action<Nop190_PollVotingRecord>(this.detach_Nop190_PollVotingRecords));
			this._Nop190_ProductRatings = new EntitySet<Nop190_ProductRating>(new Action<Nop190_ProductRating>(this.attach_Nop190_ProductRatings), new Action<Nop190_ProductRating>(this.detach_Nop190_ProductRatings));
			this._Nop190_ProductReviews = new EntitySet<Nop190_ProductReview>(new Action<Nop190_ProductReview>(this.attach_Nop190_ProductReviews), new Action<Nop190_ProductReview>(this.detach_Nop190_ProductReviews));
			this._Nop190_ReturnRequests = new EntitySet<Nop190_ReturnRequest>(new Action<Nop190_ReturnRequest>(this.attach_Nop190_ReturnRequests), new Action<Nop190_ReturnRequest>(this.detach_Nop190_ReturnRequests));
			this._Nop190_RewardPointsHistories = new EntitySet<Nop190_RewardPointsHistory>(new Action<Nop190_RewardPointsHistory>(this.attach_Nop190_RewardPointsHistories), new Action<Nop190_RewardPointsHistory>(this.detach_Nop190_RewardPointsHistories));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerGUID", DbType="UniqueIdentifier NOT NULL")]
		public System.Guid CustomerGUID
		{
			get
			{
				return this._CustomerGUID;
			}
			set
			{
				if ((this._CustomerGUID != value))
				{
					this.OnCustomerGUIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerGUID = value;
					this.SendPropertyChanged("CustomerGUID");
					this.OnCustomerGUIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Email", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string Email
		{
			get
			{
				return this._Email;
			}
			set
			{
				if ((this._Email != value))
				{
					this.OnEmailChanging(value);
					this.SendPropertyChanging();
					this._Email = value;
					this.SendPropertyChanged("Email");
					this.OnEmailChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Username", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Username
		{
			get
			{
				return this._Username;
			}
			set
			{
				if ((this._Username != value))
				{
					this.OnUsernameChanging(value);
					this.SendPropertyChanging();
					this._Username = value;
					this.SendPropertyChanged("Username");
					this.OnUsernameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PasswordHash", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string PasswordHash
		{
			get
			{
				return this._PasswordHash;
			}
			set
			{
				if ((this._PasswordHash != value))
				{
					this.OnPasswordHashChanging(value);
					this.SendPropertyChanging();
					this._PasswordHash = value;
					this.SendPropertyChanged("PasswordHash");
					this.OnPasswordHashChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SaltKey", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string SaltKey
		{
			get
			{
				return this._SaltKey;
			}
			set
			{
				if ((this._SaltKey != value))
				{
					this.OnSaltKeyChanging(value);
					this.SendPropertyChanging();
					this._SaltKey = value;
					this.SendPropertyChanged("SaltKey");
					this.OnSaltKeyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AffiliateID", DbType="Int NOT NULL")]
		public int AffiliateID
		{
			get
			{
				return this._AffiliateID;
			}
			set
			{
				if ((this._AffiliateID != value))
				{
					this.OnAffiliateIDChanging(value);
					this.SendPropertyChanging();
					this._AffiliateID = value;
					this.SendPropertyChanged("AffiliateID");
					this.OnAffiliateIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingAddressID", DbType="Int NOT NULL")]
		public int BillingAddressID
		{
			get
			{
				return this._BillingAddressID;
			}
			set
			{
				if ((this._BillingAddressID != value))
				{
					this.OnBillingAddressIDChanging(value);
					this.SendPropertyChanging();
					this._BillingAddressID = value;
					this.SendPropertyChanged("BillingAddressID");
					this.OnBillingAddressIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingAddressID", DbType="Int NOT NULL")]
		public int ShippingAddressID
		{
			get
			{
				return this._ShippingAddressID;
			}
			set
			{
				if ((this._ShippingAddressID != value))
				{
					this.OnShippingAddressIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingAddressID = value;
					this.SendPropertyChanged("ShippingAddressID");
					this.OnShippingAddressIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastPaymentMethodID", DbType="Int NOT NULL")]
		public int LastPaymentMethodID
		{
			get
			{
				return this._LastPaymentMethodID;
			}
			set
			{
				if ((this._LastPaymentMethodID != value))
				{
					this.OnLastPaymentMethodIDChanging(value);
					this.SendPropertyChanging();
					this._LastPaymentMethodID = value;
					this.SendPropertyChanged("LastPaymentMethodID");
					this.OnLastPaymentMethodIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastAppliedCouponCode", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string LastAppliedCouponCode
		{
			get
			{
				return this._LastAppliedCouponCode;
			}
			set
			{
				if ((this._LastAppliedCouponCode != value))
				{
					this.OnLastAppliedCouponCodeChanging(value);
					this.SendPropertyChanging();
					this._LastAppliedCouponCode = value;
					this.SendPropertyChanged("LastAppliedCouponCode");
					this.OnLastAppliedCouponCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GiftCardCouponCodes", DbType="Xml NOT NULL", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
		public string GiftCardCouponCodes
		{
			get
			{
				return this._GiftCardCouponCodes;
			}
			set
			{
				if ((this._GiftCardCouponCodes != value))
				{
					this.OnGiftCardCouponCodesChanging(value);
					this.SendPropertyChanging();
					this._GiftCardCouponCodes = value;
					this.SendPropertyChanged("GiftCardCouponCodes");
					this.OnGiftCardCouponCodesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CheckoutAttributes", DbType="Xml NOT NULL", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
		public string CheckoutAttributes
		{
			get
			{
				return this._CheckoutAttributes;
			}
			set
			{
				if ((this._CheckoutAttributes != value))
				{
					this.OnCheckoutAttributesChanging(value);
					this.SendPropertyChanging();
					this._CheckoutAttributes = value;
					this.SendPropertyChanged("CheckoutAttributes");
					this.OnCheckoutAttributesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CurrencyID", DbType="Int NOT NULL")]
		public int CurrencyID
		{
			get
			{
				return this._CurrencyID;
			}
			set
			{
				if ((this._CurrencyID != value))
				{
					this.OnCurrencyIDChanging(value);
					this.SendPropertyChanging();
					this._CurrencyID = value;
					this.SendPropertyChanged("CurrencyID");
					this.OnCurrencyIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaxDisplayTypeID", DbType="Int NOT NULL")]
		public int TaxDisplayTypeID
		{
			get
			{
				return this._TaxDisplayTypeID;
			}
			set
			{
				if ((this._TaxDisplayTypeID != value))
				{
					this.OnTaxDisplayTypeIDChanging(value);
					this.SendPropertyChanging();
					this._TaxDisplayTypeID = value;
					this.SendPropertyChanged("TaxDisplayTypeID");
					this.OnTaxDisplayTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsTaxExempt", DbType="Bit NOT NULL")]
		public bool IsTaxExempt
		{
			get
			{
				return this._IsTaxExempt;
			}
			set
			{
				if ((this._IsTaxExempt != value))
				{
					this.OnIsTaxExemptChanging(value);
					this.SendPropertyChanging();
					this._IsTaxExempt = value;
					this.SendPropertyChanged("IsTaxExempt");
					this.OnIsTaxExemptChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsAdmin", DbType="Bit NOT NULL")]
		public bool IsAdmin
		{
			get
			{
				return this._IsAdmin;
			}
			set
			{
				if ((this._IsAdmin != value))
				{
					this.OnIsAdminChanging(value);
					this.SendPropertyChanging();
					this._IsAdmin = value;
					this.SendPropertyChanged("IsAdmin");
					this.OnIsAdminChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsGuest", DbType="Bit NOT NULL")]
		public bool IsGuest
		{
			get
			{
				return this._IsGuest;
			}
			set
			{
				if ((this._IsGuest != value))
				{
					this.OnIsGuestChanging(value);
					this.SendPropertyChanging();
					this._IsGuest = value;
					this.SendPropertyChanged("IsGuest");
					this.OnIsGuestChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsForumModerator", DbType="Bit NOT NULL")]
		public bool IsForumModerator
		{
			get
			{
				return this._IsForumModerator;
			}
			set
			{
				if ((this._IsForumModerator != value))
				{
					this.OnIsForumModeratorChanging(value);
					this.SendPropertyChanging();
					this._IsForumModerator = value;
					this.SendPropertyChanged("IsForumModerator");
					this.OnIsForumModeratorChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalForumPosts", DbType="Int NOT NULL")]
		public int TotalForumPosts
		{
			get
			{
				return this._TotalForumPosts;
			}
			set
			{
				if ((this._TotalForumPosts != value))
				{
					this.OnTotalForumPostsChanging(value);
					this.SendPropertyChanging();
					this._TotalForumPosts = value;
					this.SendPropertyChanged("TotalForumPosts");
					this.OnTotalForumPostsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Signature", DbType="NVarChar(300) NOT NULL", CanBeNull=false)]
		public string Signature
		{
			get
			{
				return this._Signature;
			}
			set
			{
				if ((this._Signature != value))
				{
					this.OnSignatureChanging(value);
					this.SendPropertyChanging();
					this._Signature = value;
					this.SendPropertyChanged("Signature");
					this.OnSignatureChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AdminComment", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string AdminComment
		{
			get
			{
				return this._AdminComment;
			}
			set
			{
				if ((this._AdminComment != value))
				{
					this.OnAdminCommentChanging(value);
					this.SendPropertyChanging();
					this._AdminComment = value;
					this.SendPropertyChanged("AdminComment");
					this.OnAdminCommentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Active", DbType="Bit NOT NULL")]
		public bool Active
		{
			get
			{
				return this._Active;
			}
			set
			{
				if ((this._Active != value))
				{
					this.OnActiveChanging(value);
					this.SendPropertyChanging();
					this._Active = value;
					this.SendPropertyChanged("Active");
					this.OnActiveChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RegistrationDate", DbType="DateTime NOT NULL")]
		public System.DateTime RegistrationDate
		{
			get
			{
				return this._RegistrationDate;
			}
			set
			{
				if ((this._RegistrationDate != value))
				{
					this.OnRegistrationDateChanging(value);
					this.SendPropertyChanging();
					this._RegistrationDate = value;
					this.SendPropertyChanged("RegistrationDate");
					this.OnRegistrationDateChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TimeZoneID", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string TimeZoneID
		{
			get
			{
				return this._TimeZoneID;
			}
			set
			{
				if ((this._TimeZoneID != value))
				{
					this.OnTimeZoneIDChanging(value);
					this.SendPropertyChanging();
					this._TimeZoneID = value;
					this.SendPropertyChanged("TimeZoneID");
					this.OnTimeZoneIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AvatarID", DbType="Int NOT NULL")]
		public int AvatarID
		{
			get
			{
				return this._AvatarID;
			}
			set
			{
				if ((this._AvatarID != value))
				{
					this.OnAvatarIDChanging(value);
					this.SendPropertyChanging();
					this._AvatarID = value;
					this.SendPropertyChanged("AvatarID");
					this.OnAvatarIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DateOfBirth", DbType="DateTime")]
		public System.Nullable<System.DateTime> DateOfBirth
		{
			get
			{
				return this._DateOfBirth;
			}
			set
			{
				if ((this._DateOfBirth != value))
				{
					this.OnDateOfBirthChanging(value);
					this.SendPropertyChanging();
					this._DateOfBirth = value;
					this.SendPropertyChanged("DateOfBirth");
					this.OnDateOfBirthChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_ActivityLog", Storage="_Nop190_ActivityLogs", ThisKey="CustomerID", OtherKey="CustomerID")]
		public EntitySet<Nop190_ActivityLog> Nop190_ActivityLogs
		{
			get
			{
				return this._Nop190_ActivityLogs;
			}
			set
			{
				this._Nop190_ActivityLogs.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_Address", Storage="_Nop190_Addresses", ThisKey="CustomerID", OtherKey="CustomerID")]
		public EntitySet<Nop190_Address> Nop190_Addresses
		{
			get
			{
				return this._Nop190_Addresses;
			}
			set
			{
				this._Nop190_Addresses.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_BlogPost", Storage="_Nop190_BlogPosts", ThisKey="CustomerID", OtherKey="CreatedByID")]
		public EntitySet<Nop190_BlogPost> Nop190_BlogPosts
		{
			get
			{
				return this._Nop190_BlogPosts;
			}
			set
			{
				this._Nop190_BlogPosts.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_Customer_CustomerRole_Mapping", Storage="_Nop190_Customer_CustomerRole_Mappings", ThisKey="CustomerID", OtherKey="CustomerID")]
		public EntitySet<Nop190_Customer_CustomerRole_Mapping> Nop190_Customer_CustomerRole_Mappings
		{
			get
			{
				return this._Nop190_Customer_CustomerRole_Mappings;
			}
			set
			{
				this._Nop190_Customer_CustomerRole_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_CustomerAttribute", Storage="_Nop190_CustomerAttributes", ThisKey="CustomerID", OtherKey="CustomerId")]
		public EntitySet<Nop190_CustomerAttribute> Nop190_CustomerAttributes
		{
			get
			{
				return this._Nop190_CustomerAttributes;
			}
			set
			{
				this._Nop190_CustomerAttributes.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_DiscountUsageHistory", Storage="_Nop190_DiscountUsageHistories", ThisKey="CustomerID", OtherKey="CustomerID")]
		public EntitySet<Nop190_DiscountUsageHistory> Nop190_DiscountUsageHistories
		{
			get
			{
				return this._Nop190_DiscountUsageHistories;
			}
			set
			{
				this._Nop190_DiscountUsageHistories.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_GiftCardUsageHistory", Storage="_Nop190_GiftCardUsageHistories", ThisKey="CustomerID", OtherKey="CustomerID")]
		public EntitySet<Nop190_GiftCardUsageHistory> Nop190_GiftCardUsageHistories
		{
			get
			{
				return this._Nop190_GiftCardUsageHistories;
			}
			set
			{
				this._Nop190_GiftCardUsageHistories.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_PollVotingRecord", Storage="_Nop190_PollVotingRecords", ThisKey="CustomerID", OtherKey="CustomerID")]
		public EntitySet<Nop190_PollVotingRecord> Nop190_PollVotingRecords
		{
			get
			{
				return this._Nop190_PollVotingRecords;
			}
			set
			{
				this._Nop190_PollVotingRecords.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_ProductRating", Storage="_Nop190_ProductRatings", ThisKey="CustomerID", OtherKey="CustomerID")]
		public EntitySet<Nop190_ProductRating> Nop190_ProductRatings
		{
			get
			{
				return this._Nop190_ProductRatings;
			}
			set
			{
				this._Nop190_ProductRatings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_ProductReview", Storage="_Nop190_ProductReviews", ThisKey="CustomerID", OtherKey="CustomerID")]
		public EntitySet<Nop190_ProductReview> Nop190_ProductReviews
		{
			get
			{
				return this._Nop190_ProductReviews;
			}
			set
			{
				this._Nop190_ProductReviews.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_ReturnRequest", Storage="_Nop190_ReturnRequests", ThisKey="CustomerID", OtherKey="CustomerId")]
		public EntitySet<Nop190_ReturnRequest> Nop190_ReturnRequests
		{
			get
			{
				return this._Nop190_ReturnRequests;
			}
			set
			{
				this._Nop190_ReturnRequests.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_RewardPointsHistory", Storage="_Nop190_RewardPointsHistories", ThisKey="CustomerID", OtherKey="CustomerID")]
		public EntitySet<Nop190_RewardPointsHistory> Nop190_RewardPointsHistories
		{
			get
			{
				return this._Nop190_RewardPointsHistories;
			}
			set
			{
				this._Nop190_RewardPointsHistories.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ActivityLogs(Nop190_ActivityLog entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_ActivityLogs(Nop190_ActivityLog entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
		
		private void attach_Nop190_Addresses(Nop190_Address entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_Addresses(Nop190_Address entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
		
		private void attach_Nop190_BlogPosts(Nop190_BlogPost entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_BlogPosts(Nop190_BlogPost entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
		
		private void attach_Nop190_Customer_CustomerRole_Mappings(Nop190_Customer_CustomerRole_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_Customer_CustomerRole_Mappings(Nop190_Customer_CustomerRole_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
		
		private void attach_Nop190_CustomerAttributes(Nop190_CustomerAttribute entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_CustomerAttributes(Nop190_CustomerAttribute entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
		
		private void attach_Nop190_DiscountUsageHistories(Nop190_DiscountUsageHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_DiscountUsageHistories(Nop190_DiscountUsageHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
		
		private void attach_Nop190_GiftCardUsageHistories(Nop190_GiftCardUsageHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_GiftCardUsageHistories(Nop190_GiftCardUsageHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
		
		private void attach_Nop190_PollVotingRecords(Nop190_PollVotingRecord entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_PollVotingRecords(Nop190_PollVotingRecord entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
		
		private void attach_Nop190_ProductRatings(Nop190_ProductRating entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_ProductRatings(Nop190_ProductRating entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
		
		private void attach_Nop190_ProductReviews(Nop190_ProductReview entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_ProductReviews(Nop190_ProductReview entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
		
		private void attach_Nop190_ReturnRequests(Nop190_ReturnRequest entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_ReturnRequests(Nop190_ReturnRequest entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
		
		private void attach_Nop190_RewardPointsHistories(Nop190_RewardPointsHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = this;
		}
		
		private void detach_Nop190_RewardPointsHistories(Nop190_RewardPointsHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Customer = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Customer_CustomerRole_Mapping")]
	public partial class Nop190_Customer_CustomerRole_Mapping : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CustomerID;
		
		private int _CustomerRoleID;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
		private EntityRef<Nop190_CustomerRole> _Nop190_CustomerRole;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnCustomerRoleIDChanging(int value);
    partial void OnCustomerRoleIDChanged();
    #endregion
		
		public Nop190_Customer_CustomerRole_Mapping()
		{
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			this._Nop190_CustomerRole = default(EntityRef<Nop190_CustomerRole>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerRoleID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int CustomerRoleID
		{
			get
			{
				return this._CustomerRoleID;
			}
			set
			{
				if ((this._CustomerRoleID != value))
				{
					if (this._Nop190_CustomerRole.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerRoleIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerRoleID = value;
					this.SendPropertyChanged("CustomerRoleID");
					this.OnCustomerRoleIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_Customer_CustomerRole_Mapping", Storage="_Nop190_Customer", ThisKey="CustomerID", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_Customer_CustomerRole_Mappings.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_Customer_CustomerRole_Mappings.Add(this);
						this._CustomerID = value.CustomerID;
					}
					else
					{
						this._CustomerID = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerRole_Nop190_Customer_CustomerRole_Mapping", Storage="_Nop190_CustomerRole", ThisKey="CustomerRoleID", OtherKey="CustomerRoleID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_CustomerRole Nop190_CustomerRole
		{
			get
			{
				return this._Nop190_CustomerRole.Entity;
			}
			set
			{
				Nop190_CustomerRole previousValue = this._Nop190_CustomerRole.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_CustomerRole.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_CustomerRole.Entity = null;
						previousValue.Nop190_Customer_CustomerRole_Mappings.Remove(this);
					}
					this._Nop190_CustomerRole.Entity = value;
					if ((value != null))
					{
						value.Nop190_Customer_CustomerRole_Mappings.Add(this);
						this._CustomerRoleID = value.CustomerRoleID;
					}
					else
					{
						this._CustomerRoleID = default(int);
					}
					this.SendPropertyChanged("Nop190_CustomerRole");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CustomerAction")]
	public partial class Nop190_CustomerAction : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CustomerActionID;
		
		private string _Name;
		
		private string _SystemKeyword;
		
		private string _Comment;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_ACL> _Nop190_ACLs;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCustomerActionIDChanging(int value);
    partial void OnCustomerActionIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnSystemKeywordChanging(string value);
    partial void OnSystemKeywordChanged();
    partial void OnCommentChanging(string value);
    partial void OnCommentChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_CustomerAction()
		{
			this._Nop190_ACLs = new EntitySet<Nop190_ACL>(new Action<Nop190_ACL>(this.attach_Nop190_ACLs), new Action<Nop190_ACL>(this.detach_Nop190_ACLs));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerActionID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CustomerActionID
		{
			get
			{
				return this._CustomerActionID;
			}
			set
			{
				if ((this._CustomerActionID != value))
				{
					this.OnCustomerActionIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerActionID = value;
					this.SendPropertyChanged("CustomerActionID");
					this.OnCustomerActionIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SystemKeyword", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SystemKeyword
		{
			get
			{
				return this._SystemKeyword;
			}
			set
			{
				if ((this._SystemKeyword != value))
				{
					this.OnSystemKeywordChanging(value);
					this.SendPropertyChanging();
					this._SystemKeyword = value;
					this.SendPropertyChanged("SystemKeyword");
					this.OnSystemKeywordChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Comment", DbType="NVarChar(1000) NOT NULL", CanBeNull=false)]
		public string Comment
		{
			get
			{
				return this._Comment;
			}
			set
			{
				if ((this._Comment != value))
				{
					this.OnCommentChanging(value);
					this.SendPropertyChanging();
					this._Comment = value;
					this.SendPropertyChanged("Comment");
					this.OnCommentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerAction_Nop190_ACL", Storage="_Nop190_ACLs", ThisKey="CustomerActionID", OtherKey="CustomerActionID")]
		public EntitySet<Nop190_ACL> Nop190_ACLs
		{
			get
			{
				return this._Nop190_ACLs;
			}
			set
			{
				this._Nop190_ACLs.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ACLs(Nop190_ACL entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerAction = this;
		}
		
		private void detach_Nop190_ACLs(Nop190_ACL entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerAction = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CustomerAttribute")]
	public partial class Nop190_CustomerAttribute : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CustomerAttributeId;
		
		private int _CustomerId;
		
		private string _Key;
		
		private string _Value;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCustomerAttributeIdChanging(int value);
    partial void OnCustomerAttributeIdChanged();
    partial void OnCustomerIdChanging(int value);
    partial void OnCustomerIdChanged();
    partial void OnKeyChanging(string value);
    partial void OnKeyChanged();
    partial void OnValueChanging(string value);
    partial void OnValueChanged();
    #endregion
		
		public Nop190_CustomerAttribute()
		{
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerAttributeId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CustomerAttributeId
		{
			get
			{
				return this._CustomerAttributeId;
			}
			set
			{
				if ((this._CustomerAttributeId != value))
				{
					this.OnCustomerAttributeIdChanging(value);
					this.SendPropertyChanging();
					this._CustomerAttributeId = value;
					this.SendPropertyChanged("CustomerAttributeId");
					this.OnCustomerAttributeIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerId", DbType="Int NOT NULL")]
		public int CustomerId
		{
			get
			{
				return this._CustomerId;
			}
			set
			{
				if ((this._CustomerId != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerIdChanging(value);
					this.SendPropertyChanging();
					this._CustomerId = value;
					this.SendPropertyChanged("CustomerId");
					this.OnCustomerIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[Key]", Storage="_Key", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Key
		{
			get
			{
				return this._Key;
			}
			set
			{
				if ((this._Key != value))
				{
					this.OnKeyChanging(value);
					this.SendPropertyChanging();
					this._Key = value;
					this.SendPropertyChanged("Key");
					this.OnKeyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Value", DbType="NVarChar(1000) NOT NULL", CanBeNull=false)]
		public string Value
		{
			get
			{
				return this._Value;
			}
			set
			{
				if ((this._Value != value))
				{
					this.OnValueChanging(value);
					this.SendPropertyChanging();
					this._Value = value;
					this.SendPropertyChanged("Value");
					this.OnValueChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_CustomerAttribute", Storage="_Nop190_Customer", ThisKey="CustomerId", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_CustomerAttributes.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_CustomerAttributes.Add(this);
						this._CustomerId = value.CustomerID;
					}
					else
					{
						this._CustomerId = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CustomerRole")]
	public partial class Nop190_CustomerRole : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CustomerRoleID;
		
		private string _Name;
		
		private bool _FreeShipping;
		
		private bool _TaxExempt;
		
		private bool _Active;
		
		private bool _Deleted;
		
		private EntitySet<Nop190_ACL> _Nop190_ACLs;
		
		private EntitySet<Nop190_ACLPerObject> _Nop190_ACLPerObjects;
		
		private EntitySet<Nop190_Customer_CustomerRole_Mapping> _Nop190_Customer_CustomerRole_Mappings;
		
		private EntitySet<Nop190_CustomerRole_Discount_Mapping> _Nop190_CustomerRole_Discount_Mappings;
		
		private EntitySet<Nop190_CustomerRole_ProductPrice> _Nop190_CustomerRole_ProductPrices;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCustomerRoleIDChanging(int value);
    partial void OnCustomerRoleIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnFreeShippingChanging(bool value);
    partial void OnFreeShippingChanged();
    partial void OnTaxExemptChanging(bool value);
    partial void OnTaxExemptChanged();
    partial void OnActiveChanging(bool value);
    partial void OnActiveChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    #endregion
		
		public Nop190_CustomerRole()
		{
			this._Nop190_ACLs = new EntitySet<Nop190_ACL>(new Action<Nop190_ACL>(this.attach_Nop190_ACLs), new Action<Nop190_ACL>(this.detach_Nop190_ACLs));
			this._Nop190_ACLPerObjects = new EntitySet<Nop190_ACLPerObject>(new Action<Nop190_ACLPerObject>(this.attach_Nop190_ACLPerObjects), new Action<Nop190_ACLPerObject>(this.detach_Nop190_ACLPerObjects));
			this._Nop190_Customer_CustomerRole_Mappings = new EntitySet<Nop190_Customer_CustomerRole_Mapping>(new Action<Nop190_Customer_CustomerRole_Mapping>(this.attach_Nop190_Customer_CustomerRole_Mappings), new Action<Nop190_Customer_CustomerRole_Mapping>(this.detach_Nop190_Customer_CustomerRole_Mappings));
			this._Nop190_CustomerRole_Discount_Mappings = new EntitySet<Nop190_CustomerRole_Discount_Mapping>(new Action<Nop190_CustomerRole_Discount_Mapping>(this.attach_Nop190_CustomerRole_Discount_Mappings), new Action<Nop190_CustomerRole_Discount_Mapping>(this.detach_Nop190_CustomerRole_Discount_Mappings));
			this._Nop190_CustomerRole_ProductPrices = new EntitySet<Nop190_CustomerRole_ProductPrice>(new Action<Nop190_CustomerRole_ProductPrice>(this.attach_Nop190_CustomerRole_ProductPrices), new Action<Nop190_CustomerRole_ProductPrice>(this.detach_Nop190_CustomerRole_ProductPrices));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerRoleID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CustomerRoleID
		{
			get
			{
				return this._CustomerRoleID;
			}
			set
			{
				if ((this._CustomerRoleID != value))
				{
					this.OnCustomerRoleIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerRoleID = value;
					this.SendPropertyChanged("CustomerRoleID");
					this.OnCustomerRoleIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FreeShipping", DbType="Bit NOT NULL")]
		public bool FreeShipping
		{
			get
			{
				return this._FreeShipping;
			}
			set
			{
				if ((this._FreeShipping != value))
				{
					this.OnFreeShippingChanging(value);
					this.SendPropertyChanging();
					this._FreeShipping = value;
					this.SendPropertyChanged("FreeShipping");
					this.OnFreeShippingChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaxExempt", DbType="Bit NOT NULL")]
		public bool TaxExempt
		{
			get
			{
				return this._TaxExempt;
			}
			set
			{
				if ((this._TaxExempt != value))
				{
					this.OnTaxExemptChanging(value);
					this.SendPropertyChanging();
					this._TaxExempt = value;
					this.SendPropertyChanged("TaxExempt");
					this.OnTaxExemptChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Active", DbType="Bit NOT NULL")]
		public bool Active
		{
			get
			{
				return this._Active;
			}
			set
			{
				if ((this._Active != value))
				{
					this.OnActiveChanging(value);
					this.SendPropertyChanging();
					this._Active = value;
					this.SendPropertyChanged("Active");
					this.OnActiveChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerRole_Nop190_ACL", Storage="_Nop190_ACLs", ThisKey="CustomerRoleID", OtherKey="CustomerRoleID")]
		public EntitySet<Nop190_ACL> Nop190_ACLs
		{
			get
			{
				return this._Nop190_ACLs;
			}
			set
			{
				this._Nop190_ACLs.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerRole_Nop190_ACLPerObject", Storage="_Nop190_ACLPerObjects", ThisKey="CustomerRoleID", OtherKey="CustomerRoleId")]
		public EntitySet<Nop190_ACLPerObject> Nop190_ACLPerObjects
		{
			get
			{
				return this._Nop190_ACLPerObjects;
			}
			set
			{
				this._Nop190_ACLPerObjects.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerRole_Nop190_Customer_CustomerRole_Mapping", Storage="_Nop190_Customer_CustomerRole_Mappings", ThisKey="CustomerRoleID", OtherKey="CustomerRoleID")]
		public EntitySet<Nop190_Customer_CustomerRole_Mapping> Nop190_Customer_CustomerRole_Mappings
		{
			get
			{
				return this._Nop190_Customer_CustomerRole_Mappings;
			}
			set
			{
				this._Nop190_Customer_CustomerRole_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerRole_Nop190_CustomerRole_Discount_Mapping", Storage="_Nop190_CustomerRole_Discount_Mappings", ThisKey="CustomerRoleID", OtherKey="CustomerRoleID")]
		public EntitySet<Nop190_CustomerRole_Discount_Mapping> Nop190_CustomerRole_Discount_Mappings
		{
			get
			{
				return this._Nop190_CustomerRole_Discount_Mappings;
			}
			set
			{
				this._Nop190_CustomerRole_Discount_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerRole_Nop190_CustomerRole_ProductPrice", Storage="_Nop190_CustomerRole_ProductPrices", ThisKey="CustomerRoleID", OtherKey="CustomerRoleID")]
		public EntitySet<Nop190_CustomerRole_ProductPrice> Nop190_CustomerRole_ProductPrices
		{
			get
			{
				return this._Nop190_CustomerRole_ProductPrices;
			}
			set
			{
				this._Nop190_CustomerRole_ProductPrices.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ACLs(Nop190_ACL entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerRole = this;
		}
		
		private void detach_Nop190_ACLs(Nop190_ACL entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerRole = null;
		}
		
		private void attach_Nop190_ACLPerObjects(Nop190_ACLPerObject entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerRole = this;
		}
		
		private void detach_Nop190_ACLPerObjects(Nop190_ACLPerObject entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerRole = null;
		}
		
		private void attach_Nop190_Customer_CustomerRole_Mappings(Nop190_Customer_CustomerRole_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerRole = this;
		}
		
		private void detach_Nop190_Customer_CustomerRole_Mappings(Nop190_Customer_CustomerRole_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerRole = null;
		}
		
		private void attach_Nop190_CustomerRole_Discount_Mappings(Nop190_CustomerRole_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerRole = this;
		}
		
		private void detach_Nop190_CustomerRole_Discount_Mappings(Nop190_CustomerRole_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerRole = null;
		}
		
		private void attach_Nop190_CustomerRole_ProductPrices(Nop190_CustomerRole_ProductPrice entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerRole = this;
		}
		
		private void detach_Nop190_CustomerRole_ProductPrices(Nop190_CustomerRole_ProductPrice entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerRole = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CustomerRole_Discount_Mapping")]
	public partial class Nop190_CustomerRole_Discount_Mapping : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CustomerRoleID;
		
		private int _DiscountID;
		
		private EntityRef<Nop190_CustomerRole> _Nop190_CustomerRole;
		
		private EntityRef<Nop190_Discount> _Nop190_Discount;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCustomerRoleIDChanging(int value);
    partial void OnCustomerRoleIDChanged();
    partial void OnDiscountIDChanging(int value);
    partial void OnDiscountIDChanged();
    #endregion
		
		public Nop190_CustomerRole_Discount_Mapping()
		{
			this._Nop190_CustomerRole = default(EntityRef<Nop190_CustomerRole>);
			this._Nop190_Discount = default(EntityRef<Nop190_Discount>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerRoleID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int CustomerRoleID
		{
			get
			{
				return this._CustomerRoleID;
			}
			set
			{
				if ((this._CustomerRoleID != value))
				{
					if (this._Nop190_CustomerRole.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerRoleIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerRoleID = value;
					this.SendPropertyChanged("CustomerRoleID");
					this.OnCustomerRoleIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int DiscountID
		{
			get
			{
				return this._DiscountID;
			}
			set
			{
				if ((this._DiscountID != value))
				{
					if (this._Nop190_Discount.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnDiscountIDChanging(value);
					this.SendPropertyChanging();
					this._DiscountID = value;
					this.SendPropertyChanged("DiscountID");
					this.OnDiscountIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerRole_Nop190_CustomerRole_Discount_Mapping", Storage="_Nop190_CustomerRole", ThisKey="CustomerRoleID", OtherKey="CustomerRoleID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_CustomerRole Nop190_CustomerRole
		{
			get
			{
				return this._Nop190_CustomerRole.Entity;
			}
			set
			{
				Nop190_CustomerRole previousValue = this._Nop190_CustomerRole.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_CustomerRole.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_CustomerRole.Entity = null;
						previousValue.Nop190_CustomerRole_Discount_Mappings.Remove(this);
					}
					this._Nop190_CustomerRole.Entity = value;
					if ((value != null))
					{
						value.Nop190_CustomerRole_Discount_Mappings.Add(this);
						this._CustomerRoleID = value.CustomerRoleID;
					}
					else
					{
						this._CustomerRoleID = default(int);
					}
					this.SendPropertyChanged("Nop190_CustomerRole");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Discount_Nop190_CustomerRole_Discount_Mapping", Storage="_Nop190_Discount", ThisKey="DiscountID", OtherKey="DiscountID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Discount Nop190_Discount
		{
			get
			{
				return this._Nop190_Discount.Entity;
			}
			set
			{
				Nop190_Discount previousValue = this._Nop190_Discount.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Discount.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Discount.Entity = null;
						previousValue.Nop190_CustomerRole_Discount_Mappings.Remove(this);
					}
					this._Nop190_Discount.Entity = value;
					if ((value != null))
					{
						value.Nop190_CustomerRole_Discount_Mappings.Add(this);
						this._DiscountID = value.DiscountID;
					}
					else
					{
						this._DiscountID = default(int);
					}
					this.SendPropertyChanged("Nop190_Discount");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CustomerRole_ProductPrice")]
	public partial class Nop190_CustomerRole_ProductPrice : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _CustomerRoleProductPriceID;
		
		private int _CustomerRoleID;
		
		private int _ProductVariantID;
		
		private decimal _Price;
		
		private EntityRef<Nop190_CustomerRole> _Nop190_CustomerRole;
		
		private EntityRef<Nop190_ProductVariant> _Nop190_ProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCustomerRoleProductPriceIDChanging(int value);
    partial void OnCustomerRoleProductPriceIDChanged();
    partial void OnCustomerRoleIDChanging(int value);
    partial void OnCustomerRoleIDChanged();
    partial void OnProductVariantIDChanging(int value);
    partial void OnProductVariantIDChanged();
    partial void OnPriceChanging(decimal value);
    partial void OnPriceChanged();
    #endregion
		
		public Nop190_CustomerRole_ProductPrice()
		{
			this._Nop190_CustomerRole = default(EntityRef<Nop190_CustomerRole>);
			this._Nop190_ProductVariant = default(EntityRef<Nop190_ProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerRoleProductPriceID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int CustomerRoleProductPriceID
		{
			get
			{
				return this._CustomerRoleProductPriceID;
			}
			set
			{
				if ((this._CustomerRoleProductPriceID != value))
				{
					this.OnCustomerRoleProductPriceIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerRoleProductPriceID = value;
					this.SendPropertyChanged("CustomerRoleProductPriceID");
					this.OnCustomerRoleProductPriceIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerRoleID", DbType="Int NOT NULL")]
		public int CustomerRoleID
		{
			get
			{
				return this._CustomerRoleID;
			}
			set
			{
				if ((this._CustomerRoleID != value))
				{
					if (this._Nop190_CustomerRole.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerRoleIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerRoleID = value;
					this.SendPropertyChanged("CustomerRoleID");
					this.OnCustomerRoleIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantID", DbType="Int NOT NULL")]
		public int ProductVariantID
		{
			get
			{
				return this._ProductVariantID;
			}
			set
			{
				if ((this._ProductVariantID != value))
				{
					if (this._Nop190_ProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantID = value;
					this.SendPropertyChanged("ProductVariantID");
					this.OnProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Price", DbType="Money NOT NULL")]
		public decimal Price
		{
			get
			{
				return this._Price;
			}
			set
			{
				if ((this._Price != value))
				{
					this.OnPriceChanging(value);
					this.SendPropertyChanging();
					this._Price = value;
					this.SendPropertyChanged("Price");
					this.OnPriceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerRole_Nop190_CustomerRole_ProductPrice", Storage="_Nop190_CustomerRole", ThisKey="CustomerRoleID", OtherKey="CustomerRoleID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_CustomerRole Nop190_CustomerRole
		{
			get
			{
				return this._Nop190_CustomerRole.Entity;
			}
			set
			{
				Nop190_CustomerRole previousValue = this._Nop190_CustomerRole.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_CustomerRole.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_CustomerRole.Entity = null;
						previousValue.Nop190_CustomerRole_ProductPrices.Remove(this);
					}
					this._Nop190_CustomerRole.Entity = value;
					if ((value != null))
					{
						value.Nop190_CustomerRole_ProductPrices.Add(this);
						this._CustomerRoleID = value.CustomerRoleID;
					}
					else
					{
						this._CustomerRoleID = default(int);
					}
					this.SendPropertyChanged("Nop190_CustomerRole");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_CustomerRole_ProductPrice", Storage="_Nop190_ProductVariant", ThisKey="ProductVariantID", OtherKey="ProductVariantId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductVariant Nop190_ProductVariant
		{
			get
			{
				return this._Nop190_ProductVariant.Entity;
			}
			set
			{
				Nop190_ProductVariant previousValue = this._Nop190_ProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariant.Entity = null;
						previousValue.Nop190_CustomerRole_ProductPrices.Remove(this);
					}
					this._Nop190_ProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_CustomerRole_ProductPrices.Add(this);
						this._ProductVariantID = value.ProductVariantId;
					}
					else
					{
						this._ProductVariantID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_CustomerSession")]
	public partial class Nop190_CustomerSession : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private System.Guid _CustomerSessionGUID;
		
		private int _CustomerID;
		
		private System.DateTime _LastAccessed;
		
		private bool _IsExpired;
		
		private EntitySet<Nop190_ShoppingCartItem> _Nop190_ShoppingCartItems;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnCustomerSessionGUIDChanging(System.Guid value);
    partial void OnCustomerSessionGUIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnLastAccessedChanging(System.DateTime value);
    partial void OnLastAccessedChanged();
    partial void OnIsExpiredChanging(bool value);
    partial void OnIsExpiredChanged();
    #endregion
		
		public Nop190_CustomerSession()
		{
			this._Nop190_ShoppingCartItems = new EntitySet<Nop190_ShoppingCartItem>(new Action<Nop190_ShoppingCartItem>(this.attach_Nop190_ShoppingCartItems), new Action<Nop190_ShoppingCartItem>(this.detach_Nop190_ShoppingCartItems));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerSessionGUID", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
		public System.Guid CustomerSessionGUID
		{
			get
			{
				return this._CustomerSessionGUID;
			}
			set
			{
				if ((this._CustomerSessionGUID != value))
				{
					this.OnCustomerSessionGUIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerSessionGUID = value;
					this.SendPropertyChanged("CustomerSessionGUID");
					this.OnCustomerSessionGUIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastAccessed", DbType="DateTime NOT NULL")]
		public System.DateTime LastAccessed
		{
			get
			{
				return this._LastAccessed;
			}
			set
			{
				if ((this._LastAccessed != value))
				{
					this.OnLastAccessedChanging(value);
					this.SendPropertyChanging();
					this._LastAccessed = value;
					this.SendPropertyChanged("LastAccessed");
					this.OnLastAccessedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsExpired", DbType="Bit NOT NULL")]
		public bool IsExpired
		{
			get
			{
				return this._IsExpired;
			}
			set
			{
				if ((this._IsExpired != value))
				{
					this.OnIsExpiredChanging(value);
					this.SendPropertyChanging();
					this._IsExpired = value;
					this.SendPropertyChanged("IsExpired");
					this.OnIsExpiredChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerSession_Nop190_ShoppingCartItem", Storage="_Nop190_ShoppingCartItems", ThisKey="CustomerSessionGUID", OtherKey="CustomerSessionGUID")]
		public EntitySet<Nop190_ShoppingCartItem> Nop190_ShoppingCartItems
		{
			get
			{
				return this._Nop190_ShoppingCartItems;
			}
			set
			{
				this._Nop190_ShoppingCartItems.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ShoppingCartItems(Nop190_ShoppingCartItem entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerSession = this;
		}
		
		private void detach_Nop190_ShoppingCartItems(Nop190_ShoppingCartItem entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_CustomerSession = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Discount")]
	public partial class Nop190_Discount : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _DiscountID;
		
		private int _DiscountTypeID;
		
		private int _DiscountRequirementID;
		
		private decimal _RequirementSpentAmount;
		
		private int _RequirementBillingCountryIs;
		
		private int _RequirementShippingCountryIs;
		
		private int _DiscountLimitationID;
		
		private int _LimitationTimes;
		
		private string _Name;
		
		private bool _UsePercentage;
		
		private decimal _DiscountPercentage;
		
		private decimal _DiscountAmount;
		
		private System.DateTime _StartDate;
		
		private System.DateTime _EndDate;
		
		private bool _RequiresCouponCode;
		
		private string _CouponCode;
		
		private bool _Deleted;
		
		private EntitySet<Nop190_Category_Discount_Mapping> _Nop190_Category_Discount_Mappings;
		
		private EntitySet<Nop190_CustomerRole_Discount_Mapping> _Nop190_CustomerRole_Discount_Mappings;
		
		private EntitySet<Nop190_DiscountRestriction> _Nop190_DiscountRestrictions;
		
		private EntitySet<Nop190_DiscountUsageHistory> _Nop190_DiscountUsageHistories;
		
		private EntitySet<Nop190_ProductVariant_Discount_Mapping> _Nop190_ProductVariant_Discount_Mappings;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnDiscountIDChanging(int value);
    partial void OnDiscountIDChanged();
    partial void OnDiscountTypeIDChanging(int value);
    partial void OnDiscountTypeIDChanged();
    partial void OnDiscountRequirementIDChanging(int value);
    partial void OnDiscountRequirementIDChanged();
    partial void OnRequirementSpentAmountChanging(decimal value);
    partial void OnRequirementSpentAmountChanged();
    partial void OnRequirementBillingCountryIsChanging(int value);
    partial void OnRequirementBillingCountryIsChanged();
    partial void OnRequirementShippingCountryIsChanging(int value);
    partial void OnRequirementShippingCountryIsChanged();
    partial void OnDiscountLimitationIDChanging(int value);
    partial void OnDiscountLimitationIDChanged();
    partial void OnLimitationTimesChanging(int value);
    partial void OnLimitationTimesChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnUsePercentageChanging(bool value);
    partial void OnUsePercentageChanged();
    partial void OnDiscountPercentageChanging(decimal value);
    partial void OnDiscountPercentageChanged();
    partial void OnDiscountAmountChanging(decimal value);
    partial void OnDiscountAmountChanged();
    partial void OnStartDateChanging(System.DateTime value);
    partial void OnStartDateChanged();
    partial void OnEndDateChanging(System.DateTime value);
    partial void OnEndDateChanged();
    partial void OnRequiresCouponCodeChanging(bool value);
    partial void OnRequiresCouponCodeChanged();
    partial void OnCouponCodeChanging(string value);
    partial void OnCouponCodeChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    #endregion
		
		public Nop190_Discount()
		{
			this._Nop190_Category_Discount_Mappings = new EntitySet<Nop190_Category_Discount_Mapping>(new Action<Nop190_Category_Discount_Mapping>(this.attach_Nop190_Category_Discount_Mappings), new Action<Nop190_Category_Discount_Mapping>(this.detach_Nop190_Category_Discount_Mappings));
			this._Nop190_CustomerRole_Discount_Mappings = new EntitySet<Nop190_CustomerRole_Discount_Mapping>(new Action<Nop190_CustomerRole_Discount_Mapping>(this.attach_Nop190_CustomerRole_Discount_Mappings), new Action<Nop190_CustomerRole_Discount_Mapping>(this.detach_Nop190_CustomerRole_Discount_Mappings));
			this._Nop190_DiscountRestrictions = new EntitySet<Nop190_DiscountRestriction>(new Action<Nop190_DiscountRestriction>(this.attach_Nop190_DiscountRestrictions), new Action<Nop190_DiscountRestriction>(this.detach_Nop190_DiscountRestrictions));
			this._Nop190_DiscountUsageHistories = new EntitySet<Nop190_DiscountUsageHistory>(new Action<Nop190_DiscountUsageHistory>(this.attach_Nop190_DiscountUsageHistories), new Action<Nop190_DiscountUsageHistory>(this.detach_Nop190_DiscountUsageHistories));
			this._Nop190_ProductVariant_Discount_Mappings = new EntitySet<Nop190_ProductVariant_Discount_Mapping>(new Action<Nop190_ProductVariant_Discount_Mapping>(this.attach_Nop190_ProductVariant_Discount_Mappings), new Action<Nop190_ProductVariant_Discount_Mapping>(this.detach_Nop190_ProductVariant_Discount_Mappings));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int DiscountID
		{
			get
			{
				return this._DiscountID;
			}
			set
			{
				if ((this._DiscountID != value))
				{
					this.OnDiscountIDChanging(value);
					this.SendPropertyChanging();
					this._DiscountID = value;
					this.SendPropertyChanged("DiscountID");
					this.OnDiscountIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountTypeID", DbType="Int NOT NULL")]
		public int DiscountTypeID
		{
			get
			{
				return this._DiscountTypeID;
			}
			set
			{
				if ((this._DiscountTypeID != value))
				{
					this.OnDiscountTypeIDChanging(value);
					this.SendPropertyChanging();
					this._DiscountTypeID = value;
					this.SendPropertyChanged("DiscountTypeID");
					this.OnDiscountTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountRequirementID", DbType="Int NOT NULL")]
		public int DiscountRequirementID
		{
			get
			{
				return this._DiscountRequirementID;
			}
			set
			{
				if ((this._DiscountRequirementID != value))
				{
					this.OnDiscountRequirementIDChanging(value);
					this.SendPropertyChanging();
					this._DiscountRequirementID = value;
					this.SendPropertyChanged("DiscountRequirementID");
					this.OnDiscountRequirementIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RequirementSpentAmount", DbType="Money NOT NULL")]
		public decimal RequirementSpentAmount
		{
			get
			{
				return this._RequirementSpentAmount;
			}
			set
			{
				if ((this._RequirementSpentAmount != value))
				{
					this.OnRequirementSpentAmountChanging(value);
					this.SendPropertyChanging();
					this._RequirementSpentAmount = value;
					this.SendPropertyChanged("RequirementSpentAmount");
					this.OnRequirementSpentAmountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RequirementBillingCountryIs", DbType="Int NOT NULL")]
		public int RequirementBillingCountryIs
		{
			get
			{
				return this._RequirementBillingCountryIs;
			}
			set
			{
				if ((this._RequirementBillingCountryIs != value))
				{
					this.OnRequirementBillingCountryIsChanging(value);
					this.SendPropertyChanging();
					this._RequirementBillingCountryIs = value;
					this.SendPropertyChanged("RequirementBillingCountryIs");
					this.OnRequirementBillingCountryIsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RequirementShippingCountryIs", DbType="Int NOT NULL")]
		public int RequirementShippingCountryIs
		{
			get
			{
				return this._RequirementShippingCountryIs;
			}
			set
			{
				if ((this._RequirementShippingCountryIs != value))
				{
					this.OnRequirementShippingCountryIsChanging(value);
					this.SendPropertyChanging();
					this._RequirementShippingCountryIs = value;
					this.SendPropertyChanged("RequirementShippingCountryIs");
					this.OnRequirementShippingCountryIsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountLimitationID", DbType="Int NOT NULL")]
		public int DiscountLimitationID
		{
			get
			{
				return this._DiscountLimitationID;
			}
			set
			{
				if ((this._DiscountLimitationID != value))
				{
					this.OnDiscountLimitationIDChanging(value);
					this.SendPropertyChanging();
					this._DiscountLimitationID = value;
					this.SendPropertyChanged("DiscountLimitationID");
					this.OnDiscountLimitationIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LimitationTimes", DbType="Int NOT NULL")]
		public int LimitationTimes
		{
			get
			{
				return this._LimitationTimes;
			}
			set
			{
				if ((this._LimitationTimes != value))
				{
					this.OnLimitationTimesChanging(value);
					this.SendPropertyChanging();
					this._LimitationTimes = value;
					this.SendPropertyChanged("LimitationTimes");
					this.OnLimitationTimesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UsePercentage", DbType="Bit NOT NULL")]
		public bool UsePercentage
		{
			get
			{
				return this._UsePercentage;
			}
			set
			{
				if ((this._UsePercentage != value))
				{
					this.OnUsePercentageChanging(value);
					this.SendPropertyChanging();
					this._UsePercentage = value;
					this.SendPropertyChanged("UsePercentage");
					this.OnUsePercentageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountPercentage", DbType="Decimal(18,4) NOT NULL")]
		public decimal DiscountPercentage
		{
			get
			{
				return this._DiscountPercentage;
			}
			set
			{
				if ((this._DiscountPercentage != value))
				{
					this.OnDiscountPercentageChanging(value);
					this.SendPropertyChanging();
					this._DiscountPercentage = value;
					this.SendPropertyChanged("DiscountPercentage");
					this.OnDiscountPercentageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountAmount", DbType="Decimal(18,4) NOT NULL")]
		public decimal DiscountAmount
		{
			get
			{
				return this._DiscountAmount;
			}
			set
			{
				if ((this._DiscountAmount != value))
				{
					this.OnDiscountAmountChanging(value);
					this.SendPropertyChanging();
					this._DiscountAmount = value;
					this.SendPropertyChanged("DiscountAmount");
					this.OnDiscountAmountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StartDate", DbType="DateTime NOT NULL")]
		public System.DateTime StartDate
		{
			get
			{
				return this._StartDate;
			}
			set
			{
				if ((this._StartDate != value))
				{
					this.OnStartDateChanging(value);
					this.SendPropertyChanging();
					this._StartDate = value;
					this.SendPropertyChanged("StartDate");
					this.OnStartDateChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EndDate", DbType="DateTime NOT NULL")]
		public System.DateTime EndDate
		{
			get
			{
				return this._EndDate;
			}
			set
			{
				if ((this._EndDate != value))
				{
					this.OnEndDateChanging(value);
					this.SendPropertyChanging();
					this._EndDate = value;
					this.SendPropertyChanged("EndDate");
					this.OnEndDateChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RequiresCouponCode", DbType="Bit NOT NULL")]
		public bool RequiresCouponCode
		{
			get
			{
				return this._RequiresCouponCode;
			}
			set
			{
				if ((this._RequiresCouponCode != value))
				{
					this.OnRequiresCouponCodeChanging(value);
					this.SendPropertyChanging();
					this._RequiresCouponCode = value;
					this.SendPropertyChanged("RequiresCouponCode");
					this.OnRequiresCouponCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CouponCode", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string CouponCode
		{
			get
			{
				return this._CouponCode;
			}
			set
			{
				if ((this._CouponCode != value))
				{
					this.OnCouponCodeChanging(value);
					this.SendPropertyChanging();
					this._CouponCode = value;
					this.SendPropertyChanged("CouponCode");
					this.OnCouponCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Discount_Nop190_Category_Discount_Mapping", Storage="_Nop190_Category_Discount_Mappings", ThisKey="DiscountID", OtherKey="DiscountID")]
		public EntitySet<Nop190_Category_Discount_Mapping> Nop190_Category_Discount_Mappings
		{
			get
			{
				return this._Nop190_Category_Discount_Mappings;
			}
			set
			{
				this._Nop190_Category_Discount_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Discount_Nop190_CustomerRole_Discount_Mapping", Storage="_Nop190_CustomerRole_Discount_Mappings", ThisKey="DiscountID", OtherKey="DiscountID")]
		public EntitySet<Nop190_CustomerRole_Discount_Mapping> Nop190_CustomerRole_Discount_Mappings
		{
			get
			{
				return this._Nop190_CustomerRole_Discount_Mappings;
			}
			set
			{
				this._Nop190_CustomerRole_Discount_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Discount_Nop190_DiscountRestriction", Storage="_Nop190_DiscountRestrictions", ThisKey="DiscountID", OtherKey="DiscountID")]
		public EntitySet<Nop190_DiscountRestriction> Nop190_DiscountRestrictions
		{
			get
			{
				return this._Nop190_DiscountRestrictions;
			}
			set
			{
				this._Nop190_DiscountRestrictions.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Discount_Nop190_DiscountUsageHistory", Storage="_Nop190_DiscountUsageHistories", ThisKey="DiscountID", OtherKey="DiscountID")]
		public EntitySet<Nop190_DiscountUsageHistory> Nop190_DiscountUsageHistories
		{
			get
			{
				return this._Nop190_DiscountUsageHistories;
			}
			set
			{
				this._Nop190_DiscountUsageHistories.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Discount_Nop190_ProductVariant_Discount_Mapping", Storage="_Nop190_ProductVariant_Discount_Mappings", ThisKey="DiscountID", OtherKey="DiscountID")]
		public EntitySet<Nop190_ProductVariant_Discount_Mapping> Nop190_ProductVariant_Discount_Mappings
		{
			get
			{
				return this._Nop190_ProductVariant_Discount_Mappings;
			}
			set
			{
				this._Nop190_ProductVariant_Discount_Mappings.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_Category_Discount_Mappings(Nop190_Category_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Discount = this;
		}
		
		private void detach_Nop190_Category_Discount_Mappings(Nop190_Category_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Discount = null;
		}
		
		private void attach_Nop190_CustomerRole_Discount_Mappings(Nop190_CustomerRole_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Discount = this;
		}
		
		private void detach_Nop190_CustomerRole_Discount_Mappings(Nop190_CustomerRole_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Discount = null;
		}
		
		private void attach_Nop190_DiscountRestrictions(Nop190_DiscountRestriction entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Discount = this;
		}
		
		private void detach_Nop190_DiscountRestrictions(Nop190_DiscountRestriction entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Discount = null;
		}
		
		private void attach_Nop190_DiscountUsageHistories(Nop190_DiscountUsageHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Discount = this;
		}
		
		private void detach_Nop190_DiscountUsageHistories(Nop190_DiscountUsageHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Discount = null;
		}
		
		private void attach_Nop190_ProductVariant_Discount_Mappings(Nop190_ProductVariant_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Discount = this;
		}
		
		private void detach_Nop190_ProductVariant_Discount_Mappings(Nop190_ProductVariant_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Discount = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_DiscountRestriction")]
	public partial class Nop190_DiscountRestriction : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductVariantID;
		
		private int _DiscountID;
		
		private EntityRef<Nop190_Discount> _Nop190_Discount;
		
		private EntityRef<Nop190_ProductVariant> _Nop190_ProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductVariantIDChanging(int value);
    partial void OnProductVariantIDChanged();
    partial void OnDiscountIDChanging(int value);
    partial void OnDiscountIDChanged();
    #endregion
		
		public Nop190_DiscountRestriction()
		{
			this._Nop190_Discount = default(EntityRef<Nop190_Discount>);
			this._Nop190_ProductVariant = default(EntityRef<Nop190_ProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int ProductVariantID
		{
			get
			{
				return this._ProductVariantID;
			}
			set
			{
				if ((this._ProductVariantID != value))
				{
					if (this._Nop190_ProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantID = value;
					this.SendPropertyChanged("ProductVariantID");
					this.OnProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int DiscountID
		{
			get
			{
				return this._DiscountID;
			}
			set
			{
				if ((this._DiscountID != value))
				{
					if (this._Nop190_Discount.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnDiscountIDChanging(value);
					this.SendPropertyChanging();
					this._DiscountID = value;
					this.SendPropertyChanged("DiscountID");
					this.OnDiscountIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Discount_Nop190_DiscountRestriction", Storage="_Nop190_Discount", ThisKey="DiscountID", OtherKey="DiscountID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Discount Nop190_Discount
		{
			get
			{
				return this._Nop190_Discount.Entity;
			}
			set
			{
				Nop190_Discount previousValue = this._Nop190_Discount.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Discount.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Discount.Entity = null;
						previousValue.Nop190_DiscountRestrictions.Remove(this);
					}
					this._Nop190_Discount.Entity = value;
					if ((value != null))
					{
						value.Nop190_DiscountRestrictions.Add(this);
						this._DiscountID = value.DiscountID;
					}
					else
					{
						this._DiscountID = default(int);
					}
					this.SendPropertyChanged("Nop190_Discount");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_DiscountRestriction", Storage="_Nop190_ProductVariant", ThisKey="ProductVariantID", OtherKey="ProductVariantId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductVariant Nop190_ProductVariant
		{
			get
			{
				return this._Nop190_ProductVariant.Entity;
			}
			set
			{
				Nop190_ProductVariant previousValue = this._Nop190_ProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariant.Entity = null;
						previousValue.Nop190_DiscountRestrictions.Remove(this);
					}
					this._Nop190_ProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_DiscountRestrictions.Add(this);
						this._ProductVariantID = value.ProductVariantId;
					}
					else
					{
						this._ProductVariantID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_DiscountUsageHistory")]
	public partial class Nop190_DiscountUsageHistory : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _DiscountUsageHistoryID;
		
		private int _DiscountID;
		
		private int _CustomerID;
		
		private int _OrderID;
		
		private System.DateTime _CreatedOn;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
		private EntityRef<Nop190_Discount> _Nop190_Discount;
		
		private EntityRef<Nop190_Order> _Nop190_Order;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnDiscountUsageHistoryIDChanging(int value);
    partial void OnDiscountUsageHistoryIDChanged();
    partial void OnDiscountIDChanging(int value);
    partial void OnDiscountIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnOrderIDChanging(int value);
    partial void OnOrderIDChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_DiscountUsageHistory()
		{
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			this._Nop190_Discount = default(EntityRef<Nop190_Discount>);
			this._Nop190_Order = default(EntityRef<Nop190_Order>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountUsageHistoryID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int DiscountUsageHistoryID
		{
			get
			{
				return this._DiscountUsageHistoryID;
			}
			set
			{
				if ((this._DiscountUsageHistoryID != value))
				{
					this.OnDiscountUsageHistoryIDChanging(value);
					this.SendPropertyChanging();
					this._DiscountUsageHistoryID = value;
					this.SendPropertyChanged("DiscountUsageHistoryID");
					this.OnDiscountUsageHistoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountID", DbType="Int NOT NULL")]
		public int DiscountID
		{
			get
			{
				return this._DiscountID;
			}
			set
			{
				if ((this._DiscountID != value))
				{
					if (this._Nop190_Discount.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnDiscountIDChanging(value);
					this.SendPropertyChanging();
					this._DiscountID = value;
					this.SendPropertyChanged("DiscountID");
					this.OnDiscountIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderID", DbType="Int NOT NULL")]
		public int OrderID
		{
			get
			{
				return this._OrderID;
			}
			set
			{
				if ((this._OrderID != value))
				{
					if (this._Nop190_Order.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnOrderIDChanging(value);
					this.SendPropertyChanging();
					this._OrderID = value;
					this.SendPropertyChanged("OrderID");
					this.OnOrderIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_DiscountUsageHistory", Storage="_Nop190_Customer", ThisKey="CustomerID", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_DiscountUsageHistories.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_DiscountUsageHistories.Add(this);
						this._CustomerID = value.CustomerID;
					}
					else
					{
						this._CustomerID = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Discount_Nop190_DiscountUsageHistory", Storage="_Nop190_Discount", ThisKey="DiscountID", OtherKey="DiscountID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Discount Nop190_Discount
		{
			get
			{
				return this._Nop190_Discount.Entity;
			}
			set
			{
				Nop190_Discount previousValue = this._Nop190_Discount.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Discount.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Discount.Entity = null;
						previousValue.Nop190_DiscountUsageHistories.Remove(this);
					}
					this._Nop190_Discount.Entity = value;
					if ((value != null))
					{
						value.Nop190_DiscountUsageHistories.Add(this);
						this._DiscountID = value.DiscountID;
					}
					else
					{
						this._DiscountID = default(int);
					}
					this.SendPropertyChanged("Nop190_Discount");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Order_Nop190_DiscountUsageHistory", Storage="_Nop190_Order", ThisKey="OrderID", OtherKey="OrderID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Order Nop190_Order
		{
			get
			{
				return this._Nop190_Order.Entity;
			}
			set
			{
				Nop190_Order previousValue = this._Nop190_Order.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Order.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Order.Entity = null;
						previousValue.Nop190_DiscountUsageHistories.Remove(this);
					}
					this._Nop190_Order.Entity = value;
					if ((value != null))
					{
						value.Nop190_DiscountUsageHistories.Add(this);
						this._OrderID = value.OrderID;
					}
					else
					{
						this._OrderID = default(int);
					}
					this.SendPropertyChanged("Nop190_Order");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Download")]
	public partial class Nop190_Download : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _DownloadID;
		
		private bool _UseDownloadURL;
		
		private string _DownloadURL;
		
		private System.Data.Linq.Binary _DownloadBinary;
		
		private string _ContentType;
		
		private string _Filename;
		
		private string _Extension;
		
		private bool _IsNew;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnDownloadIDChanging(int value);
    partial void OnDownloadIDChanged();
    partial void OnUseDownloadURLChanging(bool value);
    partial void OnUseDownloadURLChanged();
    partial void OnDownloadURLChanging(string value);
    partial void OnDownloadURLChanged();
    partial void OnDownloadBinaryChanging(System.Data.Linq.Binary value);
    partial void OnDownloadBinaryChanged();
    partial void OnContentTypeChanging(string value);
    partial void OnContentTypeChanged();
    partial void OnFilenameChanging(string value);
    partial void OnFilenameChanged();
    partial void OnExtensionChanging(string value);
    partial void OnExtensionChanged();
    partial void OnIsNewChanging(bool value);
    partial void OnIsNewChanged();
    #endregion
		
		public Nop190_Download()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DownloadID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int DownloadID
		{
			get
			{
				return this._DownloadID;
			}
			set
			{
				if ((this._DownloadID != value))
				{
					this.OnDownloadIDChanging(value);
					this.SendPropertyChanging();
					this._DownloadID = value;
					this.SendPropertyChanged("DownloadID");
					this.OnDownloadIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UseDownloadURL", DbType="Bit NOT NULL")]
		public bool UseDownloadURL
		{
			get
			{
				return this._UseDownloadURL;
			}
			set
			{
				if ((this._UseDownloadURL != value))
				{
					this.OnUseDownloadURLChanging(value);
					this.SendPropertyChanging();
					this._UseDownloadURL = value;
					this.SendPropertyChanged("UseDownloadURL");
					this.OnUseDownloadURLChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DownloadURL", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string DownloadURL
		{
			get
			{
				return this._DownloadURL;
			}
			set
			{
				if ((this._DownloadURL != value))
				{
					this.OnDownloadURLChanging(value);
					this.SendPropertyChanging();
					this._DownloadURL = value;
					this.SendPropertyChanged("DownloadURL");
					this.OnDownloadURLChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DownloadBinary", DbType="VarBinary(MAX)", UpdateCheck=UpdateCheck.Never)]
		public System.Data.Linq.Binary DownloadBinary
		{
			get
			{
				return this._DownloadBinary;
			}
			set
			{
				if ((this._DownloadBinary != value))
				{
					this.OnDownloadBinaryChanging(value);
					this.SendPropertyChanging();
					this._DownloadBinary = value;
					this.SendPropertyChanged("DownloadBinary");
					this.OnDownloadBinaryChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ContentType", DbType="NVarChar(20) NOT NULL", CanBeNull=false)]
		public string ContentType
		{
			get
			{
				return this._ContentType;
			}
			set
			{
				if ((this._ContentType != value))
				{
					this.OnContentTypeChanging(value);
					this.SendPropertyChanging();
					this._ContentType = value;
					this.SendPropertyChanged("ContentType");
					this.OnContentTypeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Filename", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Filename
		{
			get
			{
				return this._Filename;
			}
			set
			{
				if ((this._Filename != value))
				{
					this.OnFilenameChanging(value);
					this.SendPropertyChanging();
					this._Filename = value;
					this.SendPropertyChanged("Filename");
					this.OnFilenameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Extension", DbType="NVarChar(20) NOT NULL", CanBeNull=false)]
		public string Extension
		{
			get
			{
				return this._Extension;
			}
			set
			{
				if ((this._Extension != value))
				{
					this.OnExtensionChanging(value);
					this.SendPropertyChanging();
					this._Extension = value;
					this.SendPropertyChanged("Extension");
					this.OnExtensionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsNew", DbType="Bit NOT NULL")]
		public bool IsNew
		{
			get
			{
				return this._IsNew;
			}
			set
			{
				if ((this._IsNew != value))
				{
					this.OnIsNewChanging(value);
					this.SendPropertyChanging();
					this._IsNew = value;
					this.SendPropertyChanged("IsNew");
					this.OnIsNewChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_EmailAccount")]
	public partial class Nop190_EmailAccount : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _EmailAccountId;
		
		private string _Email;
		
		private string _DisplayName;
		
		private string _Host;
		
		private int _Port;
		
		private string _Username;
		
		private string _Password;
		
		private bool _EnableSSL;
		
		private bool _UseDefaultCredentials;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnEmailAccountIdChanging(int value);
    partial void OnEmailAccountIdChanged();
    partial void OnEmailChanging(string value);
    partial void OnEmailChanged();
    partial void OnDisplayNameChanging(string value);
    partial void OnDisplayNameChanged();
    partial void OnHostChanging(string value);
    partial void OnHostChanged();
    partial void OnPortChanging(int value);
    partial void OnPortChanged();
    partial void OnUsernameChanging(string value);
    partial void OnUsernameChanged();
    partial void OnPasswordChanging(string value);
    partial void OnPasswordChanged();
    partial void OnEnableSSLChanging(bool value);
    partial void OnEnableSSLChanged();
    partial void OnUseDefaultCredentialsChanging(bool value);
    partial void OnUseDefaultCredentialsChanged();
    #endregion
		
		public Nop190_EmailAccount()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EmailAccountId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int EmailAccountId
		{
			get
			{
				return this._EmailAccountId;
			}
			set
			{
				if ((this._EmailAccountId != value))
				{
					this.OnEmailAccountIdChanging(value);
					this.SendPropertyChanging();
					this._EmailAccountId = value;
					this.SendPropertyChanged("EmailAccountId");
					this.OnEmailAccountIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Email", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string Email
		{
			get
			{
				return this._Email;
			}
			set
			{
				if ((this._Email != value))
				{
					this.OnEmailChanging(value);
					this.SendPropertyChanging();
					this._Email = value;
					this.SendPropertyChanged("Email");
					this.OnEmailChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayName", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string DisplayName
		{
			get
			{
				return this._DisplayName;
			}
			set
			{
				if ((this._DisplayName != value))
				{
					this.OnDisplayNameChanging(value);
					this.SendPropertyChanging();
					this._DisplayName = value;
					this.SendPropertyChanged("DisplayName");
					this.OnDisplayNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Host", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string Host
		{
			get
			{
				return this._Host;
			}
			set
			{
				if ((this._Host != value))
				{
					this.OnHostChanging(value);
					this.SendPropertyChanging();
					this._Host = value;
					this.SendPropertyChanged("Host");
					this.OnHostChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Port", DbType="Int NOT NULL")]
		public int Port
		{
			get
			{
				return this._Port;
			}
			set
			{
				if ((this._Port != value))
				{
					this.OnPortChanging(value);
					this.SendPropertyChanging();
					this._Port = value;
					this.SendPropertyChanged("Port");
					this.OnPortChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Username", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string Username
		{
			get
			{
				return this._Username;
			}
			set
			{
				if ((this._Username != value))
				{
					this.OnUsernameChanging(value);
					this.SendPropertyChanging();
					this._Username = value;
					this.SendPropertyChanged("Username");
					this.OnUsernameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Password", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string Password
		{
			get
			{
				return this._Password;
			}
			set
			{
				if ((this._Password != value))
				{
					this.OnPasswordChanging(value);
					this.SendPropertyChanging();
					this._Password = value;
					this.SendPropertyChanged("Password");
					this.OnPasswordChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EnableSSL", DbType="Bit NOT NULL")]
		public bool EnableSSL
		{
			get
			{
				return this._EnableSSL;
			}
			set
			{
				if ((this._EnableSSL != value))
				{
					this.OnEnableSSLChanging(value);
					this.SendPropertyChanging();
					this._EnableSSL = value;
					this.SendPropertyChanged("EnableSSL");
					this.OnEnableSSLChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UseDefaultCredentials", DbType="Bit NOT NULL")]
		public bool UseDefaultCredentials
		{
			get
			{
				return this._UseDefaultCredentials;
			}
			set
			{
				if ((this._UseDefaultCredentials != value))
				{
					this.OnUseDefaultCredentialsChanging(value);
					this.SendPropertyChanging();
					this._UseDefaultCredentials = value;
					this.SendPropertyChanged("UseDefaultCredentials");
					this.OnUseDefaultCredentialsChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Forums_Forum")]
	public partial class Nop190_Forums_Forum : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ForumID;
		
		private int _ForumGroupID;
		
		private string _Name;
		
		private string _Description;
		
		private int _NumTopics;
		
		private int _NumPosts;
		
		private int _LastTopicID;
		
		private int _LastPostID;
		
		private int _LastPostUserID;
		
		private System.Nullable<System.DateTime> _LastPostTime;
		
		private int _DisplayOrder;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_Forums_Topic> _Nop190_Forums_Topics;
		
		private EntityRef<Nop190_Forums_Group> _Nop190_Forums_Group;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnForumIDChanging(int value);
    partial void OnForumIDChanged();
    partial void OnForumGroupIDChanging(int value);
    partial void OnForumGroupIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnNumTopicsChanging(int value);
    partial void OnNumTopicsChanged();
    partial void OnNumPostsChanging(int value);
    partial void OnNumPostsChanged();
    partial void OnLastTopicIDChanging(int value);
    partial void OnLastTopicIDChanged();
    partial void OnLastPostIDChanging(int value);
    partial void OnLastPostIDChanged();
    partial void OnLastPostUserIDChanging(int value);
    partial void OnLastPostUserIDChanged();
    partial void OnLastPostTimeChanging(System.Nullable<System.DateTime> value);
    partial void OnLastPostTimeChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_Forums_Forum()
		{
			this._Nop190_Forums_Topics = new EntitySet<Nop190_Forums_Topic>(new Action<Nop190_Forums_Topic>(this.attach_Nop190_Forums_Topics), new Action<Nop190_Forums_Topic>(this.detach_Nop190_Forums_Topics));
			this._Nop190_Forums_Group = default(EntityRef<Nop190_Forums_Group>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ForumID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ForumID
		{
			get
			{
				return this._ForumID;
			}
			set
			{
				if ((this._ForumID != value))
				{
					this.OnForumIDChanging(value);
					this.SendPropertyChanging();
					this._ForumID = value;
					this.SendPropertyChanged("ForumID");
					this.OnForumIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ForumGroupID", DbType="Int NOT NULL")]
		public int ForumGroupID
		{
			get
			{
				return this._ForumGroupID;
			}
			set
			{
				if ((this._ForumGroupID != value))
				{
					if (this._Nop190_Forums_Group.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnForumGroupIDChanging(value);
					this.SendPropertyChanging();
					this._ForumGroupID = value;
					this.SendPropertyChanged("ForumGroupID");
					this.OnForumGroupIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(MAX)")]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NumTopics", DbType="Int NOT NULL")]
		public int NumTopics
		{
			get
			{
				return this._NumTopics;
			}
			set
			{
				if ((this._NumTopics != value))
				{
					this.OnNumTopicsChanging(value);
					this.SendPropertyChanging();
					this._NumTopics = value;
					this.SendPropertyChanged("NumTopics");
					this.OnNumTopicsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NumPosts", DbType="Int NOT NULL")]
		public int NumPosts
		{
			get
			{
				return this._NumPosts;
			}
			set
			{
				if ((this._NumPosts != value))
				{
					this.OnNumPostsChanging(value);
					this.SendPropertyChanging();
					this._NumPosts = value;
					this.SendPropertyChanged("NumPosts");
					this.OnNumPostsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastTopicID", DbType="Int NOT NULL")]
		public int LastTopicID
		{
			get
			{
				return this._LastTopicID;
			}
			set
			{
				if ((this._LastTopicID != value))
				{
					this.OnLastTopicIDChanging(value);
					this.SendPropertyChanging();
					this._LastTopicID = value;
					this.SendPropertyChanged("LastTopicID");
					this.OnLastTopicIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastPostID", DbType="Int NOT NULL")]
		public int LastPostID
		{
			get
			{
				return this._LastPostID;
			}
			set
			{
				if ((this._LastPostID != value))
				{
					this.OnLastPostIDChanging(value);
					this.SendPropertyChanging();
					this._LastPostID = value;
					this.SendPropertyChanged("LastPostID");
					this.OnLastPostIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastPostUserID", DbType="Int NOT NULL")]
		public int LastPostUserID
		{
			get
			{
				return this._LastPostUserID;
			}
			set
			{
				if ((this._LastPostUserID != value))
				{
					this.OnLastPostUserIDChanging(value);
					this.SendPropertyChanging();
					this._LastPostUserID = value;
					this.SendPropertyChanged("LastPostUserID");
					this.OnLastPostUserIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastPostTime", DbType="DateTime")]
		public System.Nullable<System.DateTime> LastPostTime
		{
			get
			{
				return this._LastPostTime;
			}
			set
			{
				if ((this._LastPostTime != value))
				{
					this.OnLastPostTimeChanging(value);
					this.SendPropertyChanging();
					this._LastPostTime = value;
					this.SendPropertyChanged("LastPostTime");
					this.OnLastPostTimeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Forums_Forum_Nop190_Forums_Topic", Storage="_Nop190_Forums_Topics", ThisKey="ForumID", OtherKey="ForumID")]
		public EntitySet<Nop190_Forums_Topic> Nop190_Forums_Topics
		{
			get
			{
				return this._Nop190_Forums_Topics;
			}
			set
			{
				this._Nop190_Forums_Topics.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Forums_Group_Nop190_Forums_Forum", Storage="_Nop190_Forums_Group", ThisKey="ForumGroupID", OtherKey="ForumGroupID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Forums_Group Nop190_Forums_Group
		{
			get
			{
				return this._Nop190_Forums_Group.Entity;
			}
			set
			{
				Nop190_Forums_Group previousValue = this._Nop190_Forums_Group.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Forums_Group.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Forums_Group.Entity = null;
						previousValue.Nop190_Forums_Forums.Remove(this);
					}
					this._Nop190_Forums_Group.Entity = value;
					if ((value != null))
					{
						value.Nop190_Forums_Forums.Add(this);
						this._ForumGroupID = value.ForumGroupID;
					}
					else
					{
						this._ForumGroupID = default(int);
					}
					this.SendPropertyChanged("Nop190_Forums_Group");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_Forums_Topics(Nop190_Forums_Topic entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Forums_Forum = this;
		}
		
		private void detach_Nop190_Forums_Topics(Nop190_Forums_Topic entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Forums_Forum = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Forums_Group")]
	public partial class Nop190_Forums_Group : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ForumGroupID;
		
		private string _Name;
		
		private string _Description;
		
		private int _DisplayOrder;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_Forums_Forum> _Nop190_Forums_Forums;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnForumGroupIDChanging(int value);
    partial void OnForumGroupIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_Forums_Group()
		{
			this._Nop190_Forums_Forums = new EntitySet<Nop190_Forums_Forum>(new Action<Nop190_Forums_Forum>(this.attach_Nop190_Forums_Forums), new Action<Nop190_Forums_Forum>(this.detach_Nop190_Forums_Forums));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ForumGroupID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ForumGroupID
		{
			get
			{
				return this._ForumGroupID;
			}
			set
			{
				if ((this._ForumGroupID != value))
				{
					this.OnForumGroupIDChanging(value);
					this.SendPropertyChanging();
					this._ForumGroupID = value;
					this.SendPropertyChanged("ForumGroupID");
					this.OnForumGroupIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Forums_Group_Nop190_Forums_Forum", Storage="_Nop190_Forums_Forums", ThisKey="ForumGroupID", OtherKey="ForumGroupID")]
		public EntitySet<Nop190_Forums_Forum> Nop190_Forums_Forums
		{
			get
			{
				return this._Nop190_Forums_Forums;
			}
			set
			{
				this._Nop190_Forums_Forums.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_Forums_Forums(Nop190_Forums_Forum entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Forums_Group = this;
		}
		
		private void detach_Nop190_Forums_Forums(Nop190_Forums_Forum entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Forums_Group = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Forums_Post")]
	public partial class Nop190_Forums_Post : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _PostID;
		
		private int _TopicID;
		
		private int _UserID;
		
		private string _Text;
		
		private string _IPAddress;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntityRef<Nop190_Forums_Topic> _Nop190_Forums_Topic;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnPostIDChanging(int value);
    partial void OnPostIDChanged();
    partial void OnTopicIDChanging(int value);
    partial void OnTopicIDChanged();
    partial void OnUserIDChanging(int value);
    partial void OnUserIDChanged();
    partial void OnTextChanging(string value);
    partial void OnTextChanged();
    partial void OnIPAddressChanging(string value);
    partial void OnIPAddressChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_Forums_Post()
		{
			this._Nop190_Forums_Topic = default(EntityRef<Nop190_Forums_Topic>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PostID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int PostID
		{
			get
			{
				return this._PostID;
			}
			set
			{
				if ((this._PostID != value))
				{
					this.OnPostIDChanging(value);
					this.SendPropertyChanging();
					this._PostID = value;
					this.SendPropertyChanged("PostID");
					this.OnPostIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TopicID", DbType="Int NOT NULL")]
		public int TopicID
		{
			get
			{
				return this._TopicID;
			}
			set
			{
				if ((this._TopicID != value))
				{
					if (this._Nop190_Forums_Topic.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnTopicIDChanging(value);
					this.SendPropertyChanging();
					this._TopicID = value;
					this.SendPropertyChanged("TopicID");
					this.OnTopicIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserID", DbType="Int NOT NULL")]
		public int UserID
		{
			get
			{
				return this._UserID;
			}
			set
			{
				if ((this._UserID != value))
				{
					this.OnUserIDChanging(value);
					this.SendPropertyChanging();
					this._UserID = value;
					this.SendPropertyChanged("UserID");
					this.OnUserIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Text", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Text
		{
			get
			{
				return this._Text;
			}
			set
			{
				if ((this._Text != value))
				{
					this.OnTextChanging(value);
					this.SendPropertyChanging();
					this._Text = value;
					this.SendPropertyChanged("Text");
					this.OnTextChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IPAddress", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string IPAddress
		{
			get
			{
				return this._IPAddress;
			}
			set
			{
				if ((this._IPAddress != value))
				{
					this.OnIPAddressChanging(value);
					this.SendPropertyChanging();
					this._IPAddress = value;
					this.SendPropertyChanged("IPAddress");
					this.OnIPAddressChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Forums_Topic_Nop190_Forums_Post", Storage="_Nop190_Forums_Topic", ThisKey="TopicID", OtherKey="TopicID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Forums_Topic Nop190_Forums_Topic
		{
			get
			{
				return this._Nop190_Forums_Topic.Entity;
			}
			set
			{
				Nop190_Forums_Topic previousValue = this._Nop190_Forums_Topic.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Forums_Topic.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Forums_Topic.Entity = null;
						previousValue.Nop190_Forums_Posts.Remove(this);
					}
					this._Nop190_Forums_Topic.Entity = value;
					if ((value != null))
					{
						value.Nop190_Forums_Posts.Add(this);
						this._TopicID = value.TopicID;
					}
					else
					{
						this._TopicID = default(int);
					}
					this.SendPropertyChanged("Nop190_Forums_Topic");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Forums_PrivateMessage")]
	public partial class Nop190_Forums_PrivateMessage : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _PrivateMessageID;
		
		private int _FromUserID;
		
		private int _ToUserID;
		
		private string _Subject;
		
		private string _Text;
		
		private bool _IsRead;
		
		private bool _IsDeletedByAuthor;
		
		private bool _IsDeletedByRecipient;
		
		private System.DateTime _CreatedOn;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnPrivateMessageIDChanging(int value);
    partial void OnPrivateMessageIDChanged();
    partial void OnFromUserIDChanging(int value);
    partial void OnFromUserIDChanged();
    partial void OnToUserIDChanging(int value);
    partial void OnToUserIDChanged();
    partial void OnSubjectChanging(string value);
    partial void OnSubjectChanged();
    partial void OnTextChanging(string value);
    partial void OnTextChanged();
    partial void OnIsReadChanging(bool value);
    partial void OnIsReadChanged();
    partial void OnIsDeletedByAuthorChanging(bool value);
    partial void OnIsDeletedByAuthorChanged();
    partial void OnIsDeletedByRecipientChanging(bool value);
    partial void OnIsDeletedByRecipientChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_Forums_PrivateMessage()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PrivateMessageID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int PrivateMessageID
		{
			get
			{
				return this._PrivateMessageID;
			}
			set
			{
				if ((this._PrivateMessageID != value))
				{
					this.OnPrivateMessageIDChanging(value);
					this.SendPropertyChanging();
					this._PrivateMessageID = value;
					this.SendPropertyChanged("PrivateMessageID");
					this.OnPrivateMessageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FromUserID", DbType="Int NOT NULL")]
		public int FromUserID
		{
			get
			{
				return this._FromUserID;
			}
			set
			{
				if ((this._FromUserID != value))
				{
					this.OnFromUserIDChanging(value);
					this.SendPropertyChanging();
					this._FromUserID = value;
					this.SendPropertyChanged("FromUserID");
					this.OnFromUserIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ToUserID", DbType="Int NOT NULL")]
		public int ToUserID
		{
			get
			{
				return this._ToUserID;
			}
			set
			{
				if ((this._ToUserID != value))
				{
					this.OnToUserIDChanging(value);
					this.SendPropertyChanging();
					this._ToUserID = value;
					this.SendPropertyChanged("ToUserID");
					this.OnToUserIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Subject", DbType="NVarChar(450) NOT NULL", CanBeNull=false)]
		public string Subject
		{
			get
			{
				return this._Subject;
			}
			set
			{
				if ((this._Subject != value))
				{
					this.OnSubjectChanging(value);
					this.SendPropertyChanging();
					this._Subject = value;
					this.SendPropertyChanged("Subject");
					this.OnSubjectChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Text", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Text
		{
			get
			{
				return this._Text;
			}
			set
			{
				if ((this._Text != value))
				{
					this.OnTextChanging(value);
					this.SendPropertyChanging();
					this._Text = value;
					this.SendPropertyChanged("Text");
					this.OnTextChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsRead", DbType="Bit NOT NULL")]
		public bool IsRead
		{
			get
			{
				return this._IsRead;
			}
			set
			{
				if ((this._IsRead != value))
				{
					this.OnIsReadChanging(value);
					this.SendPropertyChanging();
					this._IsRead = value;
					this.SendPropertyChanged("IsRead");
					this.OnIsReadChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsDeletedByAuthor", DbType="Bit NOT NULL")]
		public bool IsDeletedByAuthor
		{
			get
			{
				return this._IsDeletedByAuthor;
			}
			set
			{
				if ((this._IsDeletedByAuthor != value))
				{
					this.OnIsDeletedByAuthorChanging(value);
					this.SendPropertyChanging();
					this._IsDeletedByAuthor = value;
					this.SendPropertyChanged("IsDeletedByAuthor");
					this.OnIsDeletedByAuthorChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsDeletedByRecipient", DbType="Bit NOT NULL")]
		public bool IsDeletedByRecipient
		{
			get
			{
				return this._IsDeletedByRecipient;
			}
			set
			{
				if ((this._IsDeletedByRecipient != value))
				{
					this.OnIsDeletedByRecipientChanging(value);
					this.SendPropertyChanging();
					this._IsDeletedByRecipient = value;
					this.SendPropertyChanged("IsDeletedByRecipient");
					this.OnIsDeletedByRecipientChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Forums_Subscription")]
	public partial class Nop190_Forums_Subscription : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _SubscriptionID;
		
		private System.Guid _SubscriptionGUID;
		
		private int _UserID;
		
		private int _ForumID;
		
		private int _TopicID;
		
		private System.DateTime _CreatedOn;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnSubscriptionIDChanging(int value);
    partial void OnSubscriptionIDChanged();
    partial void OnSubscriptionGUIDChanging(System.Guid value);
    partial void OnSubscriptionGUIDChanged();
    partial void OnUserIDChanging(int value);
    partial void OnUserIDChanged();
    partial void OnForumIDChanging(int value);
    partial void OnForumIDChanged();
    partial void OnTopicIDChanging(int value);
    partial void OnTopicIDChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_Forums_Subscription()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubscriptionID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int SubscriptionID
		{
			get
			{
				return this._SubscriptionID;
			}
			set
			{
				if ((this._SubscriptionID != value))
				{
					this.OnSubscriptionIDChanging(value);
					this.SendPropertyChanging();
					this._SubscriptionID = value;
					this.SendPropertyChanged("SubscriptionID");
					this.OnSubscriptionIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubscriptionGUID", DbType="UniqueIdentifier NOT NULL")]
		public System.Guid SubscriptionGUID
		{
			get
			{
				return this._SubscriptionGUID;
			}
			set
			{
				if ((this._SubscriptionGUID != value))
				{
					this.OnSubscriptionGUIDChanging(value);
					this.SendPropertyChanging();
					this._SubscriptionGUID = value;
					this.SendPropertyChanged("SubscriptionGUID");
					this.OnSubscriptionGUIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserID", DbType="Int NOT NULL")]
		public int UserID
		{
			get
			{
				return this._UserID;
			}
			set
			{
				if ((this._UserID != value))
				{
					this.OnUserIDChanging(value);
					this.SendPropertyChanging();
					this._UserID = value;
					this.SendPropertyChanged("UserID");
					this.OnUserIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ForumID", DbType="Int NOT NULL")]
		public int ForumID
		{
			get
			{
				return this._ForumID;
			}
			set
			{
				if ((this._ForumID != value))
				{
					this.OnForumIDChanging(value);
					this.SendPropertyChanging();
					this._ForumID = value;
					this.SendPropertyChanged("ForumID");
					this.OnForumIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TopicID", DbType="Int NOT NULL")]
		public int TopicID
		{
			get
			{
				return this._TopicID;
			}
			set
			{
				if ((this._TopicID != value))
				{
					this.OnTopicIDChanging(value);
					this.SendPropertyChanging();
					this._TopicID = value;
					this.SendPropertyChanged("TopicID");
					this.OnTopicIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Forums_Topic")]
	public partial class Nop190_Forums_Topic : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _TopicID;
		
		private int _ForumID;
		
		private int _UserID;
		
		private int _TopicTypeID;
		
		private string _Subject;
		
		private int _NumPosts;
		
		private int _Views;
		
		private int _LastPostID;
		
		private int _LastPostUserID;
		
		private System.Nullable<System.DateTime> _LastPostTime;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_Forums_Post> _Nop190_Forums_Posts;
		
		private EntityRef<Nop190_Forums_Forum> _Nop190_Forums_Forum;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnTopicIDChanging(int value);
    partial void OnTopicIDChanged();
    partial void OnForumIDChanging(int value);
    partial void OnForumIDChanged();
    partial void OnUserIDChanging(int value);
    partial void OnUserIDChanged();
    partial void OnTopicTypeIDChanging(int value);
    partial void OnTopicTypeIDChanged();
    partial void OnSubjectChanging(string value);
    partial void OnSubjectChanged();
    partial void OnNumPostsChanging(int value);
    partial void OnNumPostsChanged();
    partial void OnViewsChanging(int value);
    partial void OnViewsChanged();
    partial void OnLastPostIDChanging(int value);
    partial void OnLastPostIDChanged();
    partial void OnLastPostUserIDChanging(int value);
    partial void OnLastPostUserIDChanged();
    partial void OnLastPostTimeChanging(System.Nullable<System.DateTime> value);
    partial void OnLastPostTimeChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_Forums_Topic()
		{
			this._Nop190_Forums_Posts = new EntitySet<Nop190_Forums_Post>(new Action<Nop190_Forums_Post>(this.attach_Nop190_Forums_Posts), new Action<Nop190_Forums_Post>(this.detach_Nop190_Forums_Posts));
			this._Nop190_Forums_Forum = default(EntityRef<Nop190_Forums_Forum>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TopicID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int TopicID
		{
			get
			{
				return this._TopicID;
			}
			set
			{
				if ((this._TopicID != value))
				{
					this.OnTopicIDChanging(value);
					this.SendPropertyChanging();
					this._TopicID = value;
					this.SendPropertyChanged("TopicID");
					this.OnTopicIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ForumID", DbType="Int NOT NULL")]
		public int ForumID
		{
			get
			{
				return this._ForumID;
			}
			set
			{
				if ((this._ForumID != value))
				{
					if (this._Nop190_Forums_Forum.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnForumIDChanging(value);
					this.SendPropertyChanging();
					this._ForumID = value;
					this.SendPropertyChanged("ForumID");
					this.OnForumIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserID", DbType="Int NOT NULL")]
		public int UserID
		{
			get
			{
				return this._UserID;
			}
			set
			{
				if ((this._UserID != value))
				{
					this.OnUserIDChanging(value);
					this.SendPropertyChanging();
					this._UserID = value;
					this.SendPropertyChanged("UserID");
					this.OnUserIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TopicTypeID", DbType="Int NOT NULL")]
		public int TopicTypeID
		{
			get
			{
				return this._TopicTypeID;
			}
			set
			{
				if ((this._TopicTypeID != value))
				{
					this.OnTopicTypeIDChanging(value);
					this.SendPropertyChanging();
					this._TopicTypeID = value;
					this.SendPropertyChanged("TopicTypeID");
					this.OnTopicTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Subject", DbType="NVarChar(450) NOT NULL", CanBeNull=false)]
		public string Subject
		{
			get
			{
				return this._Subject;
			}
			set
			{
				if ((this._Subject != value))
				{
					this.OnSubjectChanging(value);
					this.SendPropertyChanging();
					this._Subject = value;
					this.SendPropertyChanged("Subject");
					this.OnSubjectChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NumPosts", DbType="Int NOT NULL")]
		public int NumPosts
		{
			get
			{
				return this._NumPosts;
			}
			set
			{
				if ((this._NumPosts != value))
				{
					this.OnNumPostsChanging(value);
					this.SendPropertyChanging();
					this._NumPosts = value;
					this.SendPropertyChanged("NumPosts");
					this.OnNumPostsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Views", DbType="Int NOT NULL")]
		public int Views
		{
			get
			{
				return this._Views;
			}
			set
			{
				if ((this._Views != value))
				{
					this.OnViewsChanging(value);
					this.SendPropertyChanging();
					this._Views = value;
					this.SendPropertyChanged("Views");
					this.OnViewsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastPostID", DbType="Int NOT NULL")]
		public int LastPostID
		{
			get
			{
				return this._LastPostID;
			}
			set
			{
				if ((this._LastPostID != value))
				{
					this.OnLastPostIDChanging(value);
					this.SendPropertyChanging();
					this._LastPostID = value;
					this.SendPropertyChanged("LastPostID");
					this.OnLastPostIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastPostUserID", DbType="Int NOT NULL")]
		public int LastPostUserID
		{
			get
			{
				return this._LastPostUserID;
			}
			set
			{
				if ((this._LastPostUserID != value))
				{
					this.OnLastPostUserIDChanging(value);
					this.SendPropertyChanging();
					this._LastPostUserID = value;
					this.SendPropertyChanged("LastPostUserID");
					this.OnLastPostUserIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastPostTime", DbType="DateTime")]
		public System.Nullable<System.DateTime> LastPostTime
		{
			get
			{
				return this._LastPostTime;
			}
			set
			{
				if ((this._LastPostTime != value))
				{
					this.OnLastPostTimeChanging(value);
					this.SendPropertyChanging();
					this._LastPostTime = value;
					this.SendPropertyChanged("LastPostTime");
					this.OnLastPostTimeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Forums_Topic_Nop190_Forums_Post", Storage="_Nop190_Forums_Posts", ThisKey="TopicID", OtherKey="TopicID")]
		public EntitySet<Nop190_Forums_Post> Nop190_Forums_Posts
		{
			get
			{
				return this._Nop190_Forums_Posts;
			}
			set
			{
				this._Nop190_Forums_Posts.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Forums_Forum_Nop190_Forums_Topic", Storage="_Nop190_Forums_Forum", ThisKey="ForumID", OtherKey="ForumID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Forums_Forum Nop190_Forums_Forum
		{
			get
			{
				return this._Nop190_Forums_Forum.Entity;
			}
			set
			{
				Nop190_Forums_Forum previousValue = this._Nop190_Forums_Forum.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Forums_Forum.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Forums_Forum.Entity = null;
						previousValue.Nop190_Forums_Topics.Remove(this);
					}
					this._Nop190_Forums_Forum.Entity = value;
					if ((value != null))
					{
						value.Nop190_Forums_Topics.Add(this);
						this._ForumID = value.ForumID;
					}
					else
					{
						this._ForumID = default(int);
					}
					this.SendPropertyChanged("Nop190_Forums_Forum");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_Forums_Posts(Nop190_Forums_Post entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Forums_Topic = this;
		}
		
		private void detach_Nop190_Forums_Posts(Nop190_Forums_Post entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Forums_Topic = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_GiftCard")]
	public partial class Nop190_GiftCard : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _GiftCardID;
		
		private int _PurchasedOrderProductVariantID;
		
		private decimal _Amount;
		
		private bool _IsGiftCardActivated;
		
		private string _GiftCardCouponCode;
		
		private string _RecipientName;
		
		private string _RecipientEmail;
		
		private string _SenderName;
		
		private string _SenderEmail;
		
		private string _Message;
		
		private bool _IsRecipientNotified;
		
		private System.DateTime _CreatedOn;
		
		private EntitySet<Nop190_GiftCardUsageHistory> _Nop190_GiftCardUsageHistories;
		
		private EntityRef<Nop190_OrderProductVariant> _Nop190_OrderProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnGiftCardIDChanging(int value);
    partial void OnGiftCardIDChanged();
    partial void OnPurchasedOrderProductVariantIDChanging(int value);
    partial void OnPurchasedOrderProductVariantIDChanged();
    partial void OnAmountChanging(decimal value);
    partial void OnAmountChanged();
    partial void OnIsGiftCardActivatedChanging(bool value);
    partial void OnIsGiftCardActivatedChanged();
    partial void OnGiftCardCouponCodeChanging(string value);
    partial void OnGiftCardCouponCodeChanged();
    partial void OnRecipientNameChanging(string value);
    partial void OnRecipientNameChanged();
    partial void OnRecipientEmailChanging(string value);
    partial void OnRecipientEmailChanged();
    partial void OnSenderNameChanging(string value);
    partial void OnSenderNameChanged();
    partial void OnSenderEmailChanging(string value);
    partial void OnSenderEmailChanged();
    partial void OnMessageChanging(string value);
    partial void OnMessageChanged();
    partial void OnIsRecipientNotifiedChanging(bool value);
    partial void OnIsRecipientNotifiedChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_GiftCard()
		{
			this._Nop190_GiftCardUsageHistories = new EntitySet<Nop190_GiftCardUsageHistory>(new Action<Nop190_GiftCardUsageHistory>(this.attach_Nop190_GiftCardUsageHistories), new Action<Nop190_GiftCardUsageHistory>(this.detach_Nop190_GiftCardUsageHistories));
			this._Nop190_OrderProductVariant = default(EntityRef<Nop190_OrderProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GiftCardID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int GiftCardID
		{
			get
			{
				return this._GiftCardID;
			}
			set
			{
				if ((this._GiftCardID != value))
				{
					this.OnGiftCardIDChanging(value);
					this.SendPropertyChanging();
					this._GiftCardID = value;
					this.SendPropertyChanged("GiftCardID");
					this.OnGiftCardIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PurchasedOrderProductVariantID", DbType="Int NOT NULL")]
		public int PurchasedOrderProductVariantID
		{
			get
			{
				return this._PurchasedOrderProductVariantID;
			}
			set
			{
				if ((this._PurchasedOrderProductVariantID != value))
				{
					if (this._Nop190_OrderProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnPurchasedOrderProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._PurchasedOrderProductVariantID = value;
					this.SendPropertyChanged("PurchasedOrderProductVariantID");
					this.OnPurchasedOrderProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Amount", DbType="Money NOT NULL")]
		public decimal Amount
		{
			get
			{
				return this._Amount;
			}
			set
			{
				if ((this._Amount != value))
				{
					this.OnAmountChanging(value);
					this.SendPropertyChanging();
					this._Amount = value;
					this.SendPropertyChanged("Amount");
					this.OnAmountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsGiftCardActivated", DbType="Bit NOT NULL")]
		public bool IsGiftCardActivated
		{
			get
			{
				return this._IsGiftCardActivated;
			}
			set
			{
				if ((this._IsGiftCardActivated != value))
				{
					this.OnIsGiftCardActivatedChanging(value);
					this.SendPropertyChanging();
					this._IsGiftCardActivated = value;
					this.SendPropertyChanged("IsGiftCardActivated");
					this.OnIsGiftCardActivatedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GiftCardCouponCode", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string GiftCardCouponCode
		{
			get
			{
				return this._GiftCardCouponCode;
			}
			set
			{
				if ((this._GiftCardCouponCode != value))
				{
					this.OnGiftCardCouponCodeChanging(value);
					this.SendPropertyChanging();
					this._GiftCardCouponCode = value;
					this.SendPropertyChanged("GiftCardCouponCode");
					this.OnGiftCardCouponCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RecipientName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string RecipientName
		{
			get
			{
				return this._RecipientName;
			}
			set
			{
				if ((this._RecipientName != value))
				{
					this.OnRecipientNameChanging(value);
					this.SendPropertyChanging();
					this._RecipientName = value;
					this.SendPropertyChanged("RecipientName");
					this.OnRecipientNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RecipientEmail", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string RecipientEmail
		{
			get
			{
				return this._RecipientEmail;
			}
			set
			{
				if ((this._RecipientEmail != value))
				{
					this.OnRecipientEmailChanging(value);
					this.SendPropertyChanging();
					this._RecipientEmail = value;
					this.SendPropertyChanged("RecipientEmail");
					this.OnRecipientEmailChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SenderName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SenderName
		{
			get
			{
				return this._SenderName;
			}
			set
			{
				if ((this._SenderName != value))
				{
					this.OnSenderNameChanging(value);
					this.SendPropertyChanging();
					this._SenderName = value;
					this.SendPropertyChanged("SenderName");
					this.OnSenderNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SenderEmail", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SenderEmail
		{
			get
			{
				return this._SenderEmail;
			}
			set
			{
				if ((this._SenderEmail != value))
				{
					this.OnSenderEmailChanging(value);
					this.SendPropertyChanging();
					this._SenderEmail = value;
					this.SendPropertyChanged("SenderEmail");
					this.OnSenderEmailChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Message", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string Message
		{
			get
			{
				return this._Message;
			}
			set
			{
				if ((this._Message != value))
				{
					this.OnMessageChanging(value);
					this.SendPropertyChanging();
					this._Message = value;
					this.SendPropertyChanged("Message");
					this.OnMessageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsRecipientNotified", DbType="Bit NOT NULL")]
		public bool IsRecipientNotified
		{
			get
			{
				return this._IsRecipientNotified;
			}
			set
			{
				if ((this._IsRecipientNotified != value))
				{
					this.OnIsRecipientNotifiedChanging(value);
					this.SendPropertyChanging();
					this._IsRecipientNotified = value;
					this.SendPropertyChanged("IsRecipientNotified");
					this.OnIsRecipientNotifiedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_GiftCard_Nop190_GiftCardUsageHistory", Storage="_Nop190_GiftCardUsageHistories", ThisKey="GiftCardID", OtherKey="GiftCardID")]
		public EntitySet<Nop190_GiftCardUsageHistory> Nop190_GiftCardUsageHistories
		{
			get
			{
				return this._Nop190_GiftCardUsageHistories;
			}
			set
			{
				this._Nop190_GiftCardUsageHistories.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_OrderProductVariant_Nop190_GiftCard", Storage="_Nop190_OrderProductVariant", ThisKey="PurchasedOrderProductVariantID", OtherKey="OrderProductVariantID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_OrderProductVariant Nop190_OrderProductVariant
		{
			get
			{
				return this._Nop190_OrderProductVariant.Entity;
			}
			set
			{
				Nop190_OrderProductVariant previousValue = this._Nop190_OrderProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_OrderProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_OrderProductVariant.Entity = null;
						previousValue.Nop190_GiftCards.Remove(this);
					}
					this._Nop190_OrderProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_GiftCards.Add(this);
						this._PurchasedOrderProductVariantID = value.OrderProductVariantID;
					}
					else
					{
						this._PurchasedOrderProductVariantID = default(int);
					}
					this.SendPropertyChanged("Nop190_OrderProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_GiftCardUsageHistories(Nop190_GiftCardUsageHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_GiftCard = this;
		}
		
		private void detach_Nop190_GiftCardUsageHistories(Nop190_GiftCardUsageHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_GiftCard = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_GiftCardUsageHistory")]
	public partial class Nop190_GiftCardUsageHistory : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _GiftCardUsageHistoryID;
		
		private int _GiftCardID;
		
		private int _CustomerID;
		
		private int _OrderID;
		
		private decimal _UsedValue;
		
		private decimal _UsedValueInCustomerCurrency;
		
		private System.DateTime _CreatedOn;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
		private EntityRef<Nop190_GiftCard> _Nop190_GiftCard;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnGiftCardUsageHistoryIDChanging(int value);
    partial void OnGiftCardUsageHistoryIDChanged();
    partial void OnGiftCardIDChanging(int value);
    partial void OnGiftCardIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnOrderIDChanging(int value);
    partial void OnOrderIDChanged();
    partial void OnUsedValueChanging(decimal value);
    partial void OnUsedValueChanged();
    partial void OnUsedValueInCustomerCurrencyChanging(decimal value);
    partial void OnUsedValueInCustomerCurrencyChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_GiftCardUsageHistory()
		{
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			this._Nop190_GiftCard = default(EntityRef<Nop190_GiftCard>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GiftCardUsageHistoryID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int GiftCardUsageHistoryID
		{
			get
			{
				return this._GiftCardUsageHistoryID;
			}
			set
			{
				if ((this._GiftCardUsageHistoryID != value))
				{
					this.OnGiftCardUsageHistoryIDChanging(value);
					this.SendPropertyChanging();
					this._GiftCardUsageHistoryID = value;
					this.SendPropertyChanged("GiftCardUsageHistoryID");
					this.OnGiftCardUsageHistoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GiftCardID", DbType="Int NOT NULL")]
		public int GiftCardID
		{
			get
			{
				return this._GiftCardID;
			}
			set
			{
				if ((this._GiftCardID != value))
				{
					if (this._Nop190_GiftCard.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnGiftCardIDChanging(value);
					this.SendPropertyChanging();
					this._GiftCardID = value;
					this.SendPropertyChanged("GiftCardID");
					this.OnGiftCardIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderID", DbType="Int NOT NULL")]
		public int OrderID
		{
			get
			{
				return this._OrderID;
			}
			set
			{
				if ((this._OrderID != value))
				{
					this.OnOrderIDChanging(value);
					this.SendPropertyChanging();
					this._OrderID = value;
					this.SendPropertyChanged("OrderID");
					this.OnOrderIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UsedValue", DbType="Money NOT NULL")]
		public decimal UsedValue
		{
			get
			{
				return this._UsedValue;
			}
			set
			{
				if ((this._UsedValue != value))
				{
					this.OnUsedValueChanging(value);
					this.SendPropertyChanging();
					this._UsedValue = value;
					this.SendPropertyChanged("UsedValue");
					this.OnUsedValueChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UsedValueInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal UsedValueInCustomerCurrency
		{
			get
			{
				return this._UsedValueInCustomerCurrency;
			}
			set
			{
				if ((this._UsedValueInCustomerCurrency != value))
				{
					this.OnUsedValueInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._UsedValueInCustomerCurrency = value;
					this.SendPropertyChanged("UsedValueInCustomerCurrency");
					this.OnUsedValueInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_GiftCardUsageHistory", Storage="_Nop190_Customer", ThisKey="CustomerID", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_GiftCardUsageHistories.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_GiftCardUsageHistories.Add(this);
						this._CustomerID = value.CustomerID;
					}
					else
					{
						this._CustomerID = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_GiftCard_Nop190_GiftCardUsageHistory", Storage="_Nop190_GiftCard", ThisKey="GiftCardID", OtherKey="GiftCardID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_GiftCard Nop190_GiftCard
		{
			get
			{
				return this._Nop190_GiftCard.Entity;
			}
			set
			{
				Nop190_GiftCard previousValue = this._Nop190_GiftCard.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_GiftCard.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_GiftCard.Entity = null;
						previousValue.Nop190_GiftCardUsageHistories.Remove(this);
					}
					this._Nop190_GiftCard.Entity = value;
					if ((value != null))
					{
						value.Nop190_GiftCardUsageHistories.Add(this);
						this._GiftCardID = value.GiftCardID;
					}
					else
					{
						this._GiftCardID = default(int);
					}
					this.SendPropertyChanged("Nop190_GiftCard");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Language")]
	public partial class Nop190_Language : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _LanguageId;
		
		private string _Name;
		
		private string _LanguageCulture;
		
		private string _FlagImageFileName;
		
		private bool _Published;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_BlogPost> _Nop190_BlogPosts;
		
		private EntitySet<Nop190_CategoryLocalized> _Nop190_CategoryLocalizeds;
		
		private EntitySet<Nop190_CheckoutAttributeLocalized> _Nop190_CheckoutAttributeLocalizeds;
		
		private EntitySet<Nop190_CheckoutAttributeValueLocalized> _Nop190_CheckoutAttributeValueLocalizeds;
		
		private EntitySet<Nop190_LocaleStringResource> _Nop190_LocaleStringResources;
		
		private EntitySet<Nop190_ManufacturerLocalized> _Nop190_ManufacturerLocalizeds;
		
		private EntitySet<Nop190_MessageTemplateLocalized> _Nop190_MessageTemplateLocalizeds;
		
		private EntitySet<Nop190_New> _Nop190_News;
		
		private EntitySet<Nop190_Poll> _Nop190_Polls;
		
		private EntitySet<Nop190_ProductAttributeLocalized> _Nop190_ProductAttributeLocalizeds;
		
		private EntitySet<Nop190_ProductLocalized> _Nop190_ProductLocalizeds;
		
		private EntitySet<Nop190_ProductVariantAttributeValueLocalized> _Nop190_ProductVariantAttributeValueLocalizeds;
		
		private EntitySet<Nop190_ProductVariantLocalized> _Nop190_ProductVariantLocalizeds;
		
		private EntitySet<Nop190_SpecificationAttributeLocalized> _Nop190_SpecificationAttributeLocalizeds;
		
		private EntitySet<Nop190_SpecificationAttributeOptionLocalized> _Nop190_SpecificationAttributeOptionLocalizeds;
		
		private EntitySet<Nop190_TopicLocalized> _Nop190_TopicLocalizeds;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnLanguageIdChanging(int value);
    partial void OnLanguageIdChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnLanguageCultureChanging(string value);
    partial void OnLanguageCultureChanged();
    partial void OnFlagImageFileNameChanging(string value);
    partial void OnFlagImageFileNameChanged();
    partial void OnPublishedChanging(bool value);
    partial void OnPublishedChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_Language()
		{
			this._Nop190_BlogPosts = new EntitySet<Nop190_BlogPost>(new Action<Nop190_BlogPost>(this.attach_Nop190_BlogPosts), new Action<Nop190_BlogPost>(this.detach_Nop190_BlogPosts));
			this._Nop190_CategoryLocalizeds = new EntitySet<Nop190_CategoryLocalized>(new Action<Nop190_CategoryLocalized>(this.attach_Nop190_CategoryLocalizeds), new Action<Nop190_CategoryLocalized>(this.detach_Nop190_CategoryLocalizeds));
			this._Nop190_CheckoutAttributeLocalizeds = new EntitySet<Nop190_CheckoutAttributeLocalized>(new Action<Nop190_CheckoutAttributeLocalized>(this.attach_Nop190_CheckoutAttributeLocalizeds), new Action<Nop190_CheckoutAttributeLocalized>(this.detach_Nop190_CheckoutAttributeLocalizeds));
			this._Nop190_CheckoutAttributeValueLocalizeds = new EntitySet<Nop190_CheckoutAttributeValueLocalized>(new Action<Nop190_CheckoutAttributeValueLocalized>(this.attach_Nop190_CheckoutAttributeValueLocalizeds), new Action<Nop190_CheckoutAttributeValueLocalized>(this.detach_Nop190_CheckoutAttributeValueLocalizeds));
			this._Nop190_LocaleStringResources = new EntitySet<Nop190_LocaleStringResource>(new Action<Nop190_LocaleStringResource>(this.attach_Nop190_LocaleStringResources), new Action<Nop190_LocaleStringResource>(this.detach_Nop190_LocaleStringResources));
			this._Nop190_ManufacturerLocalizeds = new EntitySet<Nop190_ManufacturerLocalized>(new Action<Nop190_ManufacturerLocalized>(this.attach_Nop190_ManufacturerLocalizeds), new Action<Nop190_ManufacturerLocalized>(this.detach_Nop190_ManufacturerLocalizeds));
			this._Nop190_MessageTemplateLocalizeds = new EntitySet<Nop190_MessageTemplateLocalized>(new Action<Nop190_MessageTemplateLocalized>(this.attach_Nop190_MessageTemplateLocalizeds), new Action<Nop190_MessageTemplateLocalized>(this.detach_Nop190_MessageTemplateLocalizeds));
			this._Nop190_News = new EntitySet<Nop190_New>(new Action<Nop190_New>(this.attach_Nop190_News), new Action<Nop190_New>(this.detach_Nop190_News));
			this._Nop190_Polls = new EntitySet<Nop190_Poll>(new Action<Nop190_Poll>(this.attach_Nop190_Polls), new Action<Nop190_Poll>(this.detach_Nop190_Polls));
			this._Nop190_ProductAttributeLocalizeds = new EntitySet<Nop190_ProductAttributeLocalized>(new Action<Nop190_ProductAttributeLocalized>(this.attach_Nop190_ProductAttributeLocalizeds), new Action<Nop190_ProductAttributeLocalized>(this.detach_Nop190_ProductAttributeLocalizeds));
			this._Nop190_ProductLocalizeds = new EntitySet<Nop190_ProductLocalized>(new Action<Nop190_ProductLocalized>(this.attach_Nop190_ProductLocalizeds), new Action<Nop190_ProductLocalized>(this.detach_Nop190_ProductLocalizeds));
			this._Nop190_ProductVariantAttributeValueLocalizeds = new EntitySet<Nop190_ProductVariantAttributeValueLocalized>(new Action<Nop190_ProductVariantAttributeValueLocalized>(this.attach_Nop190_ProductVariantAttributeValueLocalizeds), new Action<Nop190_ProductVariantAttributeValueLocalized>(this.detach_Nop190_ProductVariantAttributeValueLocalizeds));
			this._Nop190_ProductVariantLocalizeds = new EntitySet<Nop190_ProductVariantLocalized>(new Action<Nop190_ProductVariantLocalized>(this.attach_Nop190_ProductVariantLocalizeds), new Action<Nop190_ProductVariantLocalized>(this.detach_Nop190_ProductVariantLocalizeds));
			this._Nop190_SpecificationAttributeLocalizeds = new EntitySet<Nop190_SpecificationAttributeLocalized>(new Action<Nop190_SpecificationAttributeLocalized>(this.attach_Nop190_SpecificationAttributeLocalizeds), new Action<Nop190_SpecificationAttributeLocalized>(this.detach_Nop190_SpecificationAttributeLocalizeds));
			this._Nop190_SpecificationAttributeOptionLocalizeds = new EntitySet<Nop190_SpecificationAttributeOptionLocalized>(new Action<Nop190_SpecificationAttributeOptionLocalized>(this.attach_Nop190_SpecificationAttributeOptionLocalizeds), new Action<Nop190_SpecificationAttributeOptionLocalized>(this.detach_Nop190_SpecificationAttributeOptionLocalizeds));
			this._Nop190_TopicLocalizeds = new EntitySet<Nop190_TopicLocalized>(new Action<Nop190_TopicLocalized>(this.attach_Nop190_TopicLocalizeds), new Action<Nop190_TopicLocalized>(this.detach_Nop190_TopicLocalizeds));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int LanguageId
		{
			get
			{
				return this._LanguageId;
			}
			set
			{
				if ((this._LanguageId != value))
				{
					this.OnLanguageIdChanging(value);
					this.SendPropertyChanging();
					this._LanguageId = value;
					this.SendPropertyChanged("LanguageId");
					this.OnLanguageIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageCulture", DbType="VarChar(20) NOT NULL", CanBeNull=false)]
		public string LanguageCulture
		{
			get
			{
				return this._LanguageCulture;
			}
			set
			{
				if ((this._LanguageCulture != value))
				{
					this.OnLanguageCultureChanging(value);
					this.SendPropertyChanging();
					this._LanguageCulture = value;
					this.SendPropertyChanged("LanguageCulture");
					this.OnLanguageCultureChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FlagImageFileName", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string FlagImageFileName
		{
			get
			{
				return this._FlagImageFileName;
			}
			set
			{
				if ((this._FlagImageFileName != value))
				{
					this.OnFlagImageFileNameChanging(value);
					this.SendPropertyChanging();
					this._FlagImageFileName = value;
					this.SendPropertyChanged("FlagImageFileName");
					this.OnFlagImageFileNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Published", DbType="Bit NOT NULL")]
		public bool Published
		{
			get
			{
				return this._Published;
			}
			set
			{
				if ((this._Published != value))
				{
					this.OnPublishedChanging(value);
					this.SendPropertyChanging();
					this._Published = value;
					this.SendPropertyChanged("Published");
					this.OnPublishedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_BlogPost", Storage="_Nop190_BlogPosts", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_BlogPost> Nop190_BlogPosts
		{
			get
			{
				return this._Nop190_BlogPosts;
			}
			set
			{
				this._Nop190_BlogPosts.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_CategoryLocalized", Storage="_Nop190_CategoryLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_CategoryLocalized> Nop190_CategoryLocalizeds
		{
			get
			{
				return this._Nop190_CategoryLocalizeds;
			}
			set
			{
				this._Nop190_CategoryLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_CheckoutAttributeLocalized", Storage="_Nop190_CheckoutAttributeLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_CheckoutAttributeLocalized> Nop190_CheckoutAttributeLocalizeds
		{
			get
			{
				return this._Nop190_CheckoutAttributeLocalizeds;
			}
			set
			{
				this._Nop190_CheckoutAttributeLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_CheckoutAttributeValueLocalized", Storage="_Nop190_CheckoutAttributeValueLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_CheckoutAttributeValueLocalized> Nop190_CheckoutAttributeValueLocalizeds
		{
			get
			{
				return this._Nop190_CheckoutAttributeValueLocalizeds;
			}
			set
			{
				this._Nop190_CheckoutAttributeValueLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_LocaleStringResource", Storage="_Nop190_LocaleStringResources", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_LocaleStringResource> Nop190_LocaleStringResources
		{
			get
			{
				return this._Nop190_LocaleStringResources;
			}
			set
			{
				this._Nop190_LocaleStringResources.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_ManufacturerLocalized", Storage="_Nop190_ManufacturerLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_ManufacturerLocalized> Nop190_ManufacturerLocalizeds
		{
			get
			{
				return this._Nop190_ManufacturerLocalizeds;
			}
			set
			{
				this._Nop190_ManufacturerLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_MessageTemplateLocalized", Storage="_Nop190_MessageTemplateLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_MessageTemplateLocalized> Nop190_MessageTemplateLocalizeds
		{
			get
			{
				return this._Nop190_MessageTemplateLocalizeds;
			}
			set
			{
				this._Nop190_MessageTemplateLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_New", Storage="_Nop190_News", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_New> Nop190_News
		{
			get
			{
				return this._Nop190_News;
			}
			set
			{
				this._Nop190_News.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_Poll", Storage="_Nop190_Polls", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_Poll> Nop190_Polls
		{
			get
			{
				return this._Nop190_Polls;
			}
			set
			{
				this._Nop190_Polls.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_ProductAttributeLocalized", Storage="_Nop190_ProductAttributeLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_ProductAttributeLocalized> Nop190_ProductAttributeLocalizeds
		{
			get
			{
				return this._Nop190_ProductAttributeLocalizeds;
			}
			set
			{
				this._Nop190_ProductAttributeLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_ProductLocalized", Storage="_Nop190_ProductLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_ProductLocalized> Nop190_ProductLocalizeds
		{
			get
			{
				return this._Nop190_ProductLocalizeds;
			}
			set
			{
				this._Nop190_ProductLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_ProductVariantAttributeValueLocalized", Storage="_Nop190_ProductVariantAttributeValueLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_ProductVariantAttributeValueLocalized> Nop190_ProductVariantAttributeValueLocalizeds
		{
			get
			{
				return this._Nop190_ProductVariantAttributeValueLocalizeds;
			}
			set
			{
				this._Nop190_ProductVariantAttributeValueLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_ProductVariantLocalized", Storage="_Nop190_ProductVariantLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_ProductVariantLocalized> Nop190_ProductVariantLocalizeds
		{
			get
			{
				return this._Nop190_ProductVariantLocalizeds;
			}
			set
			{
				this._Nop190_ProductVariantLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_SpecificationAttributeLocalized", Storage="_Nop190_SpecificationAttributeLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_SpecificationAttributeLocalized> Nop190_SpecificationAttributeLocalizeds
		{
			get
			{
				return this._Nop190_SpecificationAttributeLocalizeds;
			}
			set
			{
				this._Nop190_SpecificationAttributeLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_SpecificationAttributeOptionLocalized", Storage="_Nop190_SpecificationAttributeOptionLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_SpecificationAttributeOptionLocalized> Nop190_SpecificationAttributeOptionLocalizeds
		{
			get
			{
				return this._Nop190_SpecificationAttributeOptionLocalizeds;
			}
			set
			{
				this._Nop190_SpecificationAttributeOptionLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_TopicLocalized", Storage="_Nop190_TopicLocalizeds", ThisKey="LanguageId", OtherKey="LanguageID")]
		public EntitySet<Nop190_TopicLocalized> Nop190_TopicLocalizeds
		{
			get
			{
				return this._Nop190_TopicLocalizeds;
			}
			set
			{
				this._Nop190_TopicLocalizeds.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_BlogPosts(Nop190_BlogPost entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_BlogPosts(Nop190_BlogPost entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_CategoryLocalizeds(Nop190_CategoryLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_CategoryLocalizeds(Nop190_CategoryLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_CheckoutAttributeLocalizeds(Nop190_CheckoutAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_CheckoutAttributeLocalizeds(Nop190_CheckoutAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_CheckoutAttributeValueLocalizeds(Nop190_CheckoutAttributeValueLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_CheckoutAttributeValueLocalizeds(Nop190_CheckoutAttributeValueLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_LocaleStringResources(Nop190_LocaleStringResource entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_LocaleStringResources(Nop190_LocaleStringResource entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_ManufacturerLocalizeds(Nop190_ManufacturerLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_ManufacturerLocalizeds(Nop190_ManufacturerLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_MessageTemplateLocalizeds(Nop190_MessageTemplateLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_MessageTemplateLocalizeds(Nop190_MessageTemplateLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_News(Nop190_New entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_News(Nop190_New entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_Polls(Nop190_Poll entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_Polls(Nop190_Poll entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_ProductAttributeLocalizeds(Nop190_ProductAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_ProductAttributeLocalizeds(Nop190_ProductAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_ProductLocalizeds(Nop190_ProductLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_ProductLocalizeds(Nop190_ProductLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_ProductVariantAttributeValueLocalizeds(Nop190_ProductVariantAttributeValueLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_ProductVariantAttributeValueLocalizeds(Nop190_ProductVariantAttributeValueLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_ProductVariantLocalizeds(Nop190_ProductVariantLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_ProductVariantLocalizeds(Nop190_ProductVariantLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_SpecificationAttributeLocalizeds(Nop190_SpecificationAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_SpecificationAttributeLocalizeds(Nop190_SpecificationAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_SpecificationAttributeOptionLocalizeds(Nop190_SpecificationAttributeOptionLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_SpecificationAttributeOptionLocalizeds(Nop190_SpecificationAttributeOptionLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
		
		private void attach_Nop190_TopicLocalizeds(Nop190_TopicLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = this;
		}
		
		private void detach_Nop190_TopicLocalizeds(Nop190_TopicLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Language = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_LocaleStringResource")]
	public partial class Nop190_LocaleStringResource : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _LocaleStringResourceID;
		
		private int _LanguageID;
		
		private string _ResourceName;
		
		private string _ResourceValue;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnLocaleStringResourceIDChanging(int value);
    partial void OnLocaleStringResourceIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnResourceNameChanging(string value);
    partial void OnResourceNameChanged();
    partial void OnResourceValueChanging(string value);
    partial void OnResourceValueChanged();
    #endregion
		
		public Nop190_LocaleStringResource()
		{
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LocaleStringResourceID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int LocaleStringResourceID
		{
			get
			{
				return this._LocaleStringResourceID;
			}
			set
			{
				if ((this._LocaleStringResourceID != value))
				{
					this.OnLocaleStringResourceIDChanging(value);
					this.SendPropertyChanging();
					this._LocaleStringResourceID = value;
					this.SendPropertyChanged("LocaleStringResourceID");
					this.OnLocaleStringResourceIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceName", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string ResourceName
		{
			get
			{
				return this._ResourceName;
			}
			set
			{
				if ((this._ResourceName != value))
				{
					this.OnResourceNameChanging(value);
					this.SendPropertyChanging();
					this._ResourceName = value;
					this.SendPropertyChanged("ResourceName");
					this.OnResourceNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceValue", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string ResourceValue
		{
			get
			{
				return this._ResourceValue;
			}
			set
			{
				if ((this._ResourceValue != value))
				{
					this.OnResourceValueChanging(value);
					this.SendPropertyChanging();
					this._ResourceValue = value;
					this.SendPropertyChanged("ResourceValue");
					this.OnResourceValueChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_LocaleStringResource", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_LocaleStringResources.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_LocaleStringResources.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Log")]
	public partial class Nop190_Log : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _LogID;
		
		private int _LogTypeID;
		
		private int _Severity;
		
		private string _Message;
		
		private string _Exception;
		
		private string _IPAddress;
		
		private int _CustomerID;
		
		private string _PageURL;
		
		private string _ReferrerURL;
		
		private System.DateTime _CreatedOn;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnLogIDChanging(int value);
    partial void OnLogIDChanged();
    partial void OnLogTypeIDChanging(int value);
    partial void OnLogTypeIDChanged();
    partial void OnSeverityChanging(int value);
    partial void OnSeverityChanged();
    partial void OnMessageChanging(string value);
    partial void OnMessageChanged();
    partial void OnExceptionChanging(string value);
    partial void OnExceptionChanged();
    partial void OnIPAddressChanging(string value);
    partial void OnIPAddressChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnPageURLChanging(string value);
    partial void OnPageURLChanged();
    partial void OnReferrerURLChanging(string value);
    partial void OnReferrerURLChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_Log()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LogID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int LogID
		{
			get
			{
				return this._LogID;
			}
			set
			{
				if ((this._LogID != value))
				{
					this.OnLogIDChanging(value);
					this.SendPropertyChanging();
					this._LogID = value;
					this.SendPropertyChanged("LogID");
					this.OnLogIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LogTypeID", DbType="Int NOT NULL")]
		public int LogTypeID
		{
			get
			{
				return this._LogTypeID;
			}
			set
			{
				if ((this._LogTypeID != value))
				{
					this.OnLogTypeIDChanging(value);
					this.SendPropertyChanging();
					this._LogTypeID = value;
					this.SendPropertyChanged("LogTypeID");
					this.OnLogTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Severity", DbType="Int NOT NULL")]
		public int Severity
		{
			get
			{
				return this._Severity;
			}
			set
			{
				if ((this._Severity != value))
				{
					this.OnSeverityChanging(value);
					this.SendPropertyChanging();
					this._Severity = value;
					this.SendPropertyChanged("Severity");
					this.OnSeverityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Message", DbType="NVarChar(1000) NOT NULL", CanBeNull=false)]
		public string Message
		{
			get
			{
				return this._Message;
			}
			set
			{
				if ((this._Message != value))
				{
					this.OnMessageChanging(value);
					this.SendPropertyChanging();
					this._Message = value;
					this.SendPropertyChanged("Message");
					this.OnMessageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Exception", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string Exception
		{
			get
			{
				return this._Exception;
			}
			set
			{
				if ((this._Exception != value))
				{
					this.OnExceptionChanging(value);
					this.SendPropertyChanging();
					this._Exception = value;
					this.SendPropertyChanged("Exception");
					this.OnExceptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IPAddress", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string IPAddress
		{
			get
			{
				return this._IPAddress;
			}
			set
			{
				if ((this._IPAddress != value))
				{
					this.OnIPAddressChanging(value);
					this.SendPropertyChanging();
					this._IPAddress = value;
					this.SendPropertyChanged("IPAddress");
					this.OnIPAddressChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PageURL", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string PageURL
		{
			get
			{
				return this._PageURL;
			}
			set
			{
				if ((this._PageURL != value))
				{
					this.OnPageURLChanging(value);
					this.SendPropertyChanging();
					this._PageURL = value;
					this.SendPropertyChanged("PageURL");
					this.OnPageURLChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ReferrerURL", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string ReferrerURL
		{
			get
			{
				return this._ReferrerURL;
			}
			set
			{
				if ((this._ReferrerURL != value))
				{
					this.OnReferrerURLChanging(value);
					this.SendPropertyChanging();
					this._ReferrerURL = value;
					this.SendPropertyChanged("ReferrerURL");
					this.OnReferrerURLChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Manufacturer")]
	public partial class Nop190_Manufacturer : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ManufacturerID;
		
		private string _Name;
		
		private string _Description;
		
		private int _TemplateID;
		
		private string _MetaKeywords;
		
		private string _MetaDescription;
		
		private string _MetaTitle;
		
		private string _SEName;
		
		private int _PictureID;
		
		private int _PageSize;
		
		private string _PriceRanges;
		
		private bool _Published;
		
		private bool _Deleted;
		
		private int _DisplayOrder;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_ManufacturerLocalized> _Nop190_ManufacturerLocalizeds;
		
		private EntitySet<Nop190_Product_Manufacturer_Mapping> _Nop190_Product_Manufacturer_Mappings;
		
		private EntityRef<Nop190_ManufacturerTemplate> _Nop190_ManufacturerTemplate;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnManufacturerIDChanging(int value);
    partial void OnManufacturerIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnTemplateIDChanging(int value);
    partial void OnTemplateIDChanged();
    partial void OnMetaKeywordsChanging(string value);
    partial void OnMetaKeywordsChanged();
    partial void OnMetaDescriptionChanging(string value);
    partial void OnMetaDescriptionChanged();
    partial void OnMetaTitleChanging(string value);
    partial void OnMetaTitleChanged();
    partial void OnSENameChanging(string value);
    partial void OnSENameChanged();
    partial void OnPictureIDChanging(int value);
    partial void OnPictureIDChanged();
    partial void OnPageSizeChanging(int value);
    partial void OnPageSizeChanged();
    partial void OnPriceRangesChanging(string value);
    partial void OnPriceRangesChanged();
    partial void OnPublishedChanging(bool value);
    partial void OnPublishedChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_Manufacturer()
		{
			this._Nop190_ManufacturerLocalizeds = new EntitySet<Nop190_ManufacturerLocalized>(new Action<Nop190_ManufacturerLocalized>(this.attach_Nop190_ManufacturerLocalizeds), new Action<Nop190_ManufacturerLocalized>(this.detach_Nop190_ManufacturerLocalizeds));
			this._Nop190_Product_Manufacturer_Mappings = new EntitySet<Nop190_Product_Manufacturer_Mapping>(new Action<Nop190_Product_Manufacturer_Mapping>(this.attach_Nop190_Product_Manufacturer_Mappings), new Action<Nop190_Product_Manufacturer_Mapping>(this.detach_Nop190_Product_Manufacturer_Mappings));
			this._Nop190_ManufacturerTemplate = default(EntityRef<Nop190_ManufacturerTemplate>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ManufacturerID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ManufacturerID
		{
			get
			{
				return this._ManufacturerID;
			}
			set
			{
				if ((this._ManufacturerID != value))
				{
					this.OnManufacturerIDChanging(value);
					this.SendPropertyChanging();
					this._ManufacturerID = value;
					this.SendPropertyChanged("ManufacturerID");
					this.OnManufacturerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TemplateID", DbType="Int NOT NULL")]
		public int TemplateID
		{
			get
			{
				return this._TemplateID;
			}
			set
			{
				if ((this._TemplateID != value))
				{
					if (this._Nop190_ManufacturerTemplate.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnTemplateIDChanging(value);
					this.SendPropertyChanging();
					this._TemplateID = value;
					this.SendPropertyChanged("TemplateID");
					this.OnTemplateIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaKeywords", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaKeywords
		{
			get
			{
				return this._MetaKeywords;
			}
			set
			{
				if ((this._MetaKeywords != value))
				{
					this.OnMetaKeywordsChanging(value);
					this.SendPropertyChanging();
					this._MetaKeywords = value;
					this.SendPropertyChanged("MetaKeywords");
					this.OnMetaKeywordsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaDescription", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string MetaDescription
		{
			get
			{
				return this._MetaDescription;
			}
			set
			{
				if ((this._MetaDescription != value))
				{
					this.OnMetaDescriptionChanging(value);
					this.SendPropertyChanging();
					this._MetaDescription = value;
					this.SendPropertyChanged("MetaDescription");
					this.OnMetaDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaTitle", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaTitle
		{
			get
			{
				return this._MetaTitle;
			}
			set
			{
				if ((this._MetaTitle != value))
				{
					this.OnMetaTitleChanging(value);
					this.SendPropertyChanging();
					this._MetaTitle = value;
					this.SendPropertyChanged("MetaTitle");
					this.OnMetaTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SEName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SEName
		{
			get
			{
				return this._SEName;
			}
			set
			{
				if ((this._SEName != value))
				{
					this.OnSENameChanging(value);
					this.SendPropertyChanging();
					this._SEName = value;
					this.SendPropertyChanged("SEName");
					this.OnSENameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PictureID", DbType="Int NOT NULL")]
		public int PictureID
		{
			get
			{
				return this._PictureID;
			}
			set
			{
				if ((this._PictureID != value))
				{
					this.OnPictureIDChanging(value);
					this.SendPropertyChanging();
					this._PictureID = value;
					this.SendPropertyChanged("PictureID");
					this.OnPictureIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PageSize", DbType="Int NOT NULL")]
		public int PageSize
		{
			get
			{
				return this._PageSize;
			}
			set
			{
				if ((this._PageSize != value))
				{
					this.OnPageSizeChanging(value);
					this.SendPropertyChanging();
					this._PageSize = value;
					this.SendPropertyChanged("PageSize");
					this.OnPageSizeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceRanges", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string PriceRanges
		{
			get
			{
				return this._PriceRanges;
			}
			set
			{
				if ((this._PriceRanges != value))
				{
					this.OnPriceRangesChanging(value);
					this.SendPropertyChanging();
					this._PriceRanges = value;
					this.SendPropertyChanged("PriceRanges");
					this.OnPriceRangesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Published", DbType="Bit NOT NULL")]
		public bool Published
		{
			get
			{
				return this._Published;
			}
			set
			{
				if ((this._Published != value))
				{
					this.OnPublishedChanging(value);
					this.SendPropertyChanging();
					this._Published = value;
					this.SendPropertyChanged("Published");
					this.OnPublishedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Manufacturer_Nop190_ManufacturerLocalized", Storage="_Nop190_ManufacturerLocalizeds", ThisKey="ManufacturerID", OtherKey="ManufacturerID")]
		public EntitySet<Nop190_ManufacturerLocalized> Nop190_ManufacturerLocalizeds
		{
			get
			{
				return this._Nop190_ManufacturerLocalizeds;
			}
			set
			{
				this._Nop190_ManufacturerLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Manufacturer_Nop190_Product_Manufacturer_Mapping", Storage="_Nop190_Product_Manufacturer_Mappings", ThisKey="ManufacturerID", OtherKey="ManufacturerID")]
		public EntitySet<Nop190_Product_Manufacturer_Mapping> Nop190_Product_Manufacturer_Mappings
		{
			get
			{
				return this._Nop190_Product_Manufacturer_Mappings;
			}
			set
			{
				this._Nop190_Product_Manufacturer_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ManufacturerTemplate_Nop190_Manufacturer", Storage="_Nop190_ManufacturerTemplate", ThisKey="TemplateID", OtherKey="ManufacturerTemplateId", IsForeignKey=true)]
		public Nop190_ManufacturerTemplate Nop190_ManufacturerTemplate
		{
			get
			{
				return this._Nop190_ManufacturerTemplate.Entity;
			}
			set
			{
				Nop190_ManufacturerTemplate previousValue = this._Nop190_ManufacturerTemplate.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ManufacturerTemplate.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ManufacturerTemplate.Entity = null;
						previousValue.Nop190_Manufacturers.Remove(this);
					}
					this._Nop190_ManufacturerTemplate.Entity = value;
					if ((value != null))
					{
						value.Nop190_Manufacturers.Add(this);
						this._TemplateID = value.ManufacturerTemplateId;
					}
					else
					{
						this._TemplateID = default(int);
					}
					this.SendPropertyChanged("Nop190_ManufacturerTemplate");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ManufacturerLocalizeds(Nop190_ManufacturerLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Manufacturer = this;
		}
		
		private void detach_Nop190_ManufacturerLocalizeds(Nop190_ManufacturerLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Manufacturer = null;
		}
		
		private void attach_Nop190_Product_Manufacturer_Mappings(Nop190_Product_Manufacturer_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Manufacturer = this;
		}
		
		private void detach_Nop190_Product_Manufacturer_Mappings(Nop190_Product_Manufacturer_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Manufacturer = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ManufacturerLocalized")]
	public partial class Nop190_ManufacturerLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ManufacturerLocalizedID;
		
		private int _ManufacturerID;
		
		private int _LanguageID;
		
		private string _Name;
		
		private string _Description;
		
		private string _MetaKeywords;
		
		private string _MetaDescription;
		
		private string _MetaTitle;
		
		private string _SEName;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
		private EntityRef<Nop190_Manufacturer> _Nop190_Manufacturer;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnManufacturerLocalizedIDChanging(int value);
    partial void OnManufacturerLocalizedIDChanged();
    partial void OnManufacturerIDChanging(int value);
    partial void OnManufacturerIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnMetaKeywordsChanging(string value);
    partial void OnMetaKeywordsChanged();
    partial void OnMetaDescriptionChanging(string value);
    partial void OnMetaDescriptionChanged();
    partial void OnMetaTitleChanging(string value);
    partial void OnMetaTitleChanged();
    partial void OnSENameChanging(string value);
    partial void OnSENameChanged();
    #endregion
		
		public Nop190_ManufacturerLocalized()
		{
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			this._Nop190_Manufacturer = default(EntityRef<Nop190_Manufacturer>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ManufacturerLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ManufacturerLocalizedID
		{
			get
			{
				return this._ManufacturerLocalizedID;
			}
			set
			{
				if ((this._ManufacturerLocalizedID != value))
				{
					this.OnManufacturerLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._ManufacturerLocalizedID = value;
					this.SendPropertyChanged("ManufacturerLocalizedID");
					this.OnManufacturerLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ManufacturerID", DbType="Int NOT NULL")]
		public int ManufacturerID
		{
			get
			{
				return this._ManufacturerID;
			}
			set
			{
				if ((this._ManufacturerID != value))
				{
					if (this._Nop190_Manufacturer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnManufacturerIDChanging(value);
					this.SendPropertyChanging();
					this._ManufacturerID = value;
					this.SendPropertyChanged("ManufacturerID");
					this.OnManufacturerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaKeywords", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaKeywords
		{
			get
			{
				return this._MetaKeywords;
			}
			set
			{
				if ((this._MetaKeywords != value))
				{
					this.OnMetaKeywordsChanging(value);
					this.SendPropertyChanging();
					this._MetaKeywords = value;
					this.SendPropertyChanged("MetaKeywords");
					this.OnMetaKeywordsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaDescription", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string MetaDescription
		{
			get
			{
				return this._MetaDescription;
			}
			set
			{
				if ((this._MetaDescription != value))
				{
					this.OnMetaDescriptionChanging(value);
					this.SendPropertyChanging();
					this._MetaDescription = value;
					this.SendPropertyChanged("MetaDescription");
					this.OnMetaDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaTitle", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaTitle
		{
			get
			{
				return this._MetaTitle;
			}
			set
			{
				if ((this._MetaTitle != value))
				{
					this.OnMetaTitleChanging(value);
					this.SendPropertyChanging();
					this._MetaTitle = value;
					this.SendPropertyChanged("MetaTitle");
					this.OnMetaTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SEName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SEName
		{
			get
			{
				return this._SEName;
			}
			set
			{
				if ((this._SEName != value))
				{
					this.OnSENameChanging(value);
					this.SendPropertyChanging();
					this._SEName = value;
					this.SendPropertyChanged("SEName");
					this.OnSENameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_ManufacturerLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_ManufacturerLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_ManufacturerLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Manufacturer_Nop190_ManufacturerLocalized", Storage="_Nop190_Manufacturer", ThisKey="ManufacturerID", OtherKey="ManufacturerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Manufacturer Nop190_Manufacturer
		{
			get
			{
				return this._Nop190_Manufacturer.Entity;
			}
			set
			{
				Nop190_Manufacturer previousValue = this._Nop190_Manufacturer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Manufacturer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Manufacturer.Entity = null;
						previousValue.Nop190_ManufacturerLocalizeds.Remove(this);
					}
					this._Nop190_Manufacturer.Entity = value;
					if ((value != null))
					{
						value.Nop190_ManufacturerLocalizeds.Add(this);
						this._ManufacturerID = value.ManufacturerID;
					}
					else
					{
						this._ManufacturerID = default(int);
					}
					this.SendPropertyChanged("Nop190_Manufacturer");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ManufacturerTemplate")]
	public partial class Nop190_ManufacturerTemplate : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ManufacturerTemplateId;
		
		private string _Name;
		
		private string _TemplatePath;
		
		private int _DisplayOrder;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_Manufacturer> _Nop190_Manufacturers;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnManufacturerTemplateIdChanging(int value);
    partial void OnManufacturerTemplateIdChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnTemplatePathChanging(string value);
    partial void OnTemplatePathChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_ManufacturerTemplate()
		{
			this._Nop190_Manufacturers = new EntitySet<Nop190_Manufacturer>(new Action<Nop190_Manufacturer>(this.attach_Nop190_Manufacturers), new Action<Nop190_Manufacturer>(this.detach_Nop190_Manufacturers));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ManufacturerTemplateId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ManufacturerTemplateId
		{
			get
			{
				return this._ManufacturerTemplateId;
			}
			set
			{
				if ((this._ManufacturerTemplateId != value))
				{
					this.OnManufacturerTemplateIdChanging(value);
					this.SendPropertyChanging();
					this._ManufacturerTemplateId = value;
					this.SendPropertyChanged("ManufacturerTemplateId");
					this.OnManufacturerTemplateIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TemplatePath", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string TemplatePath
		{
			get
			{
				return this._TemplatePath;
			}
			set
			{
				if ((this._TemplatePath != value))
				{
					this.OnTemplatePathChanging(value);
					this.SendPropertyChanging();
					this._TemplatePath = value;
					this.SendPropertyChanged("TemplatePath");
					this.OnTemplatePathChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ManufacturerTemplate_Nop190_Manufacturer", Storage="_Nop190_Manufacturers", ThisKey="ManufacturerTemplateId", OtherKey="TemplateID")]
		public EntitySet<Nop190_Manufacturer> Nop190_Manufacturers
		{
			get
			{
				return this._Nop190_Manufacturers;
			}
			set
			{
				this._Nop190_Manufacturers.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_Manufacturers(Nop190_Manufacturer entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ManufacturerTemplate = this;
		}
		
		private void detach_Nop190_Manufacturers(Nop190_Manufacturer entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ManufacturerTemplate = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_MeasureDimension")]
	public partial class Nop190_MeasureDimension : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _MeasureDimensionID;
		
		private string _Name;
		
		private string _SystemKeyword;
		
		private decimal _Ratio;
		
		private int _DisplayOrder;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnMeasureDimensionIDChanging(int value);
    partial void OnMeasureDimensionIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnSystemKeywordChanging(string value);
    partial void OnSystemKeywordChanged();
    partial void OnRatioChanging(decimal value);
    partial void OnRatioChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_MeasureDimension()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MeasureDimensionID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int MeasureDimensionID
		{
			get
			{
				return this._MeasureDimensionID;
			}
			set
			{
				if ((this._MeasureDimensionID != value))
				{
					this.OnMeasureDimensionIDChanging(value);
					this.SendPropertyChanging();
					this._MeasureDimensionID = value;
					this.SendPropertyChanged("MeasureDimensionID");
					this.OnMeasureDimensionIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SystemKeyword", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SystemKeyword
		{
			get
			{
				return this._SystemKeyword;
			}
			set
			{
				if ((this._SystemKeyword != value))
				{
					this.OnSystemKeywordChanging(value);
					this.SendPropertyChanging();
					this._SystemKeyword = value;
					this.SendPropertyChanged("SystemKeyword");
					this.OnSystemKeywordChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Ratio", DbType="Decimal(18,4) NOT NULL")]
		public decimal Ratio
		{
			get
			{
				return this._Ratio;
			}
			set
			{
				if ((this._Ratio != value))
				{
					this.OnRatioChanging(value);
					this.SendPropertyChanging();
					this._Ratio = value;
					this.SendPropertyChanged("Ratio");
					this.OnRatioChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_MeasureWeight")]
	public partial class Nop190_MeasureWeight : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _MeasureWeightID;
		
		private string _Name;
		
		private string _SystemKeyword;
		
		private decimal _Ratio;
		
		private int _DisplayOrder;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnMeasureWeightIDChanging(int value);
    partial void OnMeasureWeightIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnSystemKeywordChanging(string value);
    partial void OnSystemKeywordChanged();
    partial void OnRatioChanging(decimal value);
    partial void OnRatioChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_MeasureWeight()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MeasureWeightID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int MeasureWeightID
		{
			get
			{
				return this._MeasureWeightID;
			}
			set
			{
				if ((this._MeasureWeightID != value))
				{
					this.OnMeasureWeightIDChanging(value);
					this.SendPropertyChanging();
					this._MeasureWeightID = value;
					this.SendPropertyChanged("MeasureWeightID");
					this.OnMeasureWeightIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SystemKeyword", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SystemKeyword
		{
			get
			{
				return this._SystemKeyword;
			}
			set
			{
				if ((this._SystemKeyword != value))
				{
					this.OnSystemKeywordChanging(value);
					this.SendPropertyChanging();
					this._SystemKeyword = value;
					this.SendPropertyChanged("SystemKeyword");
					this.OnSystemKeywordChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Ratio", DbType="Decimal(18,4) NOT NULL")]
		public decimal Ratio
		{
			get
			{
				return this._Ratio;
			}
			set
			{
				if ((this._Ratio != value))
				{
					this.OnRatioChanging(value);
					this.SendPropertyChanging();
					this._Ratio = value;
					this.SendPropertyChanged("Ratio");
					this.OnRatioChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_MessageTemplate")]
	public partial class Nop190_MessageTemplate : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _MessageTemplateID;
		
		private string _Name;
		
		private EntitySet<Nop190_MessageTemplateLocalized> _Nop190_MessageTemplateLocalizeds;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnMessageTemplateIDChanging(int value);
    partial void OnMessageTemplateIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    #endregion
		
		public Nop190_MessageTemplate()
		{
			this._Nop190_MessageTemplateLocalizeds = new EntitySet<Nop190_MessageTemplateLocalized>(new Action<Nop190_MessageTemplateLocalized>(this.attach_Nop190_MessageTemplateLocalizeds), new Action<Nop190_MessageTemplateLocalized>(this.detach_Nop190_MessageTemplateLocalizeds));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MessageTemplateID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int MessageTemplateID
		{
			get
			{
				return this._MessageTemplateID;
			}
			set
			{
				if ((this._MessageTemplateID != value))
				{
					this.OnMessageTemplateIDChanging(value);
					this.SendPropertyChanging();
					this._MessageTemplateID = value;
					this.SendPropertyChanged("MessageTemplateID");
					this.OnMessageTemplateIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_MessageTemplate_Nop190_MessageTemplateLocalized", Storage="_Nop190_MessageTemplateLocalizeds", ThisKey="MessageTemplateID", OtherKey="MessageTemplateID")]
		public EntitySet<Nop190_MessageTemplateLocalized> Nop190_MessageTemplateLocalizeds
		{
			get
			{
				return this._Nop190_MessageTemplateLocalizeds;
			}
			set
			{
				this._Nop190_MessageTemplateLocalizeds.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_MessageTemplateLocalizeds(Nop190_MessageTemplateLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_MessageTemplate = this;
		}
		
		private void detach_Nop190_MessageTemplateLocalizeds(Nop190_MessageTemplateLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_MessageTemplate = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_MessageTemplateLocalized")]
	public partial class Nop190_MessageTemplateLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _MessageTemplateLocalizedID;
		
		private int _MessageTemplateID;
		
		private int _LanguageID;
		
		private string _BCCEmailAddresses;
		
		private string _Subject;
		
		private string _Body;
		
		private bool _IsActive;
		
		private int _EmailAccountId;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
		private EntityRef<Nop190_MessageTemplate> _Nop190_MessageTemplate;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnMessageTemplateLocalizedIDChanging(int value);
    partial void OnMessageTemplateLocalizedIDChanged();
    partial void OnMessageTemplateIDChanging(int value);
    partial void OnMessageTemplateIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnBCCEmailAddressesChanging(string value);
    partial void OnBCCEmailAddressesChanged();
    partial void OnSubjectChanging(string value);
    partial void OnSubjectChanged();
    partial void OnBodyChanging(string value);
    partial void OnBodyChanged();
    partial void OnIsActiveChanging(bool value);
    partial void OnIsActiveChanged();
    partial void OnEmailAccountIdChanging(int value);
    partial void OnEmailAccountIdChanged();
    #endregion
		
		public Nop190_MessageTemplateLocalized()
		{
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			this._Nop190_MessageTemplate = default(EntityRef<Nop190_MessageTemplate>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MessageTemplateLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int MessageTemplateLocalizedID
		{
			get
			{
				return this._MessageTemplateLocalizedID;
			}
			set
			{
				if ((this._MessageTemplateLocalizedID != value))
				{
					this.OnMessageTemplateLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._MessageTemplateLocalizedID = value;
					this.SendPropertyChanged("MessageTemplateLocalizedID");
					this.OnMessageTemplateLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MessageTemplateID", DbType="Int NOT NULL")]
		public int MessageTemplateID
		{
			get
			{
				return this._MessageTemplateID;
			}
			set
			{
				if ((this._MessageTemplateID != value))
				{
					if (this._Nop190_MessageTemplate.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnMessageTemplateIDChanging(value);
					this.SendPropertyChanging();
					this._MessageTemplateID = value;
					this.SendPropertyChanged("MessageTemplateID");
					this.OnMessageTemplateIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BCCEmailAddresses", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string BCCEmailAddresses
		{
			get
			{
				return this._BCCEmailAddresses;
			}
			set
			{
				if ((this._BCCEmailAddresses != value))
				{
					this.OnBCCEmailAddressesChanging(value);
					this.SendPropertyChanging();
					this._BCCEmailAddresses = value;
					this.SendPropertyChanged("BCCEmailAddresses");
					this.OnBCCEmailAddressesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Subject", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string Subject
		{
			get
			{
				return this._Subject;
			}
			set
			{
				if ((this._Subject != value))
				{
					this.OnSubjectChanging(value);
					this.SendPropertyChanging();
					this._Subject = value;
					this.SendPropertyChanged("Subject");
					this.OnSubjectChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Body", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Body
		{
			get
			{
				return this._Body;
			}
			set
			{
				if ((this._Body != value))
				{
					this.OnBodyChanging(value);
					this.SendPropertyChanging();
					this._Body = value;
					this.SendPropertyChanged("Body");
					this.OnBodyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsActive", DbType="Bit NOT NULL")]
		public bool IsActive
		{
			get
			{
				return this._IsActive;
			}
			set
			{
				if ((this._IsActive != value))
				{
					this.OnIsActiveChanging(value);
					this.SendPropertyChanging();
					this._IsActive = value;
					this.SendPropertyChanged("IsActive");
					this.OnIsActiveChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EmailAccountId", DbType="Int NOT NULL")]
		public int EmailAccountId
		{
			get
			{
				return this._EmailAccountId;
			}
			set
			{
				if ((this._EmailAccountId != value))
				{
					this.OnEmailAccountIdChanging(value);
					this.SendPropertyChanging();
					this._EmailAccountId = value;
					this.SendPropertyChanged("EmailAccountId");
					this.OnEmailAccountIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_MessageTemplateLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_MessageTemplateLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_MessageTemplateLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_MessageTemplate_Nop190_MessageTemplateLocalized", Storage="_Nop190_MessageTemplate", ThisKey="MessageTemplateID", OtherKey="MessageTemplateID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_MessageTemplate Nop190_MessageTemplate
		{
			get
			{
				return this._Nop190_MessageTemplate.Entity;
			}
			set
			{
				Nop190_MessageTemplate previousValue = this._Nop190_MessageTemplate.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_MessageTemplate.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_MessageTemplate.Entity = null;
						previousValue.Nop190_MessageTemplateLocalizeds.Remove(this);
					}
					this._Nop190_MessageTemplate.Entity = value;
					if ((value != null))
					{
						value.Nop190_MessageTemplateLocalizeds.Add(this);
						this._MessageTemplateID = value.MessageTemplateID;
					}
					else
					{
						this._MessageTemplateID = default(int);
					}
					this.SendPropertyChanged("Nop190_MessageTemplate");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_News")]
	public partial class Nop190_New : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _NewsID;
		
		private int _LanguageID;
		
		private string _Title;
		
		private string _Short;
		
		private string _Full;
		
		private bool _Published;
		
		private bool _AllowComments;
		
		private System.DateTime _CreatedOn;
		
		private EntitySet<Nop190_NewsComment> _Nop190_NewsComments;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnNewsIDChanging(int value);
    partial void OnNewsIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnTitleChanging(string value);
    partial void OnTitleChanged();
    partial void OnShortChanging(string value);
    partial void OnShortChanged();
    partial void OnFullChanging(string value);
    partial void OnFullChanged();
    partial void OnPublishedChanging(bool value);
    partial void OnPublishedChanged();
    partial void OnAllowCommentsChanging(bool value);
    partial void OnAllowCommentsChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_New()
		{
			this._Nop190_NewsComments = new EntitySet<Nop190_NewsComment>(new Action<Nop190_NewsComment>(this.attach_Nop190_NewsComments), new Action<Nop190_NewsComment>(this.detach_Nop190_NewsComments));
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NewsID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int NewsID
		{
			get
			{
				return this._NewsID;
			}
			set
			{
				if ((this._NewsID != value))
				{
					this.OnNewsIDChanging(value);
					this.SendPropertyChanging();
					this._NewsID = value;
					this.SendPropertyChanged("NewsID");
					this.OnNewsIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Title", DbType="NVarChar(1000) NOT NULL", CanBeNull=false)]
		public string Title
		{
			get
			{
				return this._Title;
			}
			set
			{
				if ((this._Title != value))
				{
					this.OnTitleChanging(value);
					this.SendPropertyChanging();
					this._Title = value;
					this.SendPropertyChanged("Title");
					this.OnTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Short", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string Short
		{
			get
			{
				return this._Short;
			}
			set
			{
				if ((this._Short != value))
				{
					this.OnShortChanging(value);
					this.SendPropertyChanging();
					this._Short = value;
					this.SendPropertyChanged("Short");
					this.OnShortChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[Full]", Storage="_Full", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Full
		{
			get
			{
				return this._Full;
			}
			set
			{
				if ((this._Full != value))
				{
					this.OnFullChanging(value);
					this.SendPropertyChanging();
					this._Full = value;
					this.SendPropertyChanged("Full");
					this.OnFullChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Published", DbType="Bit NOT NULL")]
		public bool Published
		{
			get
			{
				return this._Published;
			}
			set
			{
				if ((this._Published != value))
				{
					this.OnPublishedChanging(value);
					this.SendPropertyChanging();
					this._Published = value;
					this.SendPropertyChanged("Published");
					this.OnPublishedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AllowComments", DbType="Bit NOT NULL")]
		public bool AllowComments
		{
			get
			{
				return this._AllowComments;
			}
			set
			{
				if ((this._AllowComments != value))
				{
					this.OnAllowCommentsChanging(value);
					this.SendPropertyChanging();
					this._AllowComments = value;
					this.SendPropertyChanged("AllowComments");
					this.OnAllowCommentsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_New_Nop190_NewsComment", Storage="_Nop190_NewsComments", ThisKey="NewsID", OtherKey="NewsID")]
		public EntitySet<Nop190_NewsComment> Nop190_NewsComments
		{
			get
			{
				return this._Nop190_NewsComments;
			}
			set
			{
				this._Nop190_NewsComments.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_New", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_News.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_News.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_NewsComments(Nop190_NewsComment entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_New = this;
		}
		
		private void detach_Nop190_NewsComments(Nop190_NewsComment entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_New = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_NewsComment")]
	public partial class Nop190_NewsComment : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _NewsCommentID;
		
		private int _NewsID;
		
		private int _CustomerID;
		
		private string _IPAddress;
		
		private string _Title;
		
		private string _Comment;
		
		private System.DateTime _CreatedOn;
		
		private EntityRef<Nop190_New> _Nop190_New;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnNewsCommentIDChanging(int value);
    partial void OnNewsCommentIDChanged();
    partial void OnNewsIDChanging(int value);
    partial void OnNewsIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnIPAddressChanging(string value);
    partial void OnIPAddressChanged();
    partial void OnTitleChanging(string value);
    partial void OnTitleChanged();
    partial void OnCommentChanging(string value);
    partial void OnCommentChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_NewsComment()
		{
			this._Nop190_New = default(EntityRef<Nop190_New>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NewsCommentID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int NewsCommentID
		{
			get
			{
				return this._NewsCommentID;
			}
			set
			{
				if ((this._NewsCommentID != value))
				{
					this.OnNewsCommentIDChanging(value);
					this.SendPropertyChanging();
					this._NewsCommentID = value;
					this.SendPropertyChanged("NewsCommentID");
					this.OnNewsCommentIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NewsID", DbType="Int NOT NULL")]
		public int NewsID
		{
			get
			{
				return this._NewsID;
			}
			set
			{
				if ((this._NewsID != value))
				{
					if (this._Nop190_New.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnNewsIDChanging(value);
					this.SendPropertyChanging();
					this._NewsID = value;
					this.SendPropertyChanged("NewsID");
					this.OnNewsIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IPAddress", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string IPAddress
		{
			get
			{
				return this._IPAddress;
			}
			set
			{
				if ((this._IPAddress != value))
				{
					this.OnIPAddressChanging(value);
					this.SendPropertyChanging();
					this._IPAddress = value;
					this.SendPropertyChanged("IPAddress");
					this.OnIPAddressChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Title", DbType="NVarChar(1000) NOT NULL", CanBeNull=false)]
		public string Title
		{
			get
			{
				return this._Title;
			}
			set
			{
				if ((this._Title != value))
				{
					this.OnTitleChanging(value);
					this.SendPropertyChanging();
					this._Title = value;
					this.SendPropertyChanged("Title");
					this.OnTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Comment", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Comment
		{
			get
			{
				return this._Comment;
			}
			set
			{
				if ((this._Comment != value))
				{
					this.OnCommentChanging(value);
					this.SendPropertyChanging();
					this._Comment = value;
					this.SendPropertyChanged("Comment");
					this.OnCommentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_New_Nop190_NewsComment", Storage="_Nop190_New", ThisKey="NewsID", OtherKey="NewsID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_New Nop190_New
		{
			get
			{
				return this._Nop190_New.Entity;
			}
			set
			{
				Nop190_New previousValue = this._Nop190_New.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_New.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_New.Entity = null;
						previousValue.Nop190_NewsComments.Remove(this);
					}
					this._Nop190_New.Entity = value;
					if ((value != null))
					{
						value.Nop190_NewsComments.Add(this);
						this._NewsID = value.NewsID;
					}
					else
					{
						this._NewsID = default(int);
					}
					this.SendPropertyChanged("Nop190_New");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_NewsLetterSubscription")]
	public partial class Nop190_NewsLetterSubscription : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _NewsLetterSubscriptionID;
		
		private System.Guid _NewsLetterSubscriptionGuid;
		
		private string _Email;
		
		private bool _Active;
		
		private System.DateTime _CreatedOn;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnNewsLetterSubscriptionIDChanging(int value);
    partial void OnNewsLetterSubscriptionIDChanged();
    partial void OnNewsLetterSubscriptionGuidChanging(System.Guid value);
    partial void OnNewsLetterSubscriptionGuidChanged();
    partial void OnEmailChanging(string value);
    partial void OnEmailChanged();
    partial void OnActiveChanging(bool value);
    partial void OnActiveChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_NewsLetterSubscription()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NewsLetterSubscriptionID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int NewsLetterSubscriptionID
		{
			get
			{
				return this._NewsLetterSubscriptionID;
			}
			set
			{
				if ((this._NewsLetterSubscriptionID != value))
				{
					this.OnNewsLetterSubscriptionIDChanging(value);
					this.SendPropertyChanging();
					this._NewsLetterSubscriptionID = value;
					this.SendPropertyChanged("NewsLetterSubscriptionID");
					this.OnNewsLetterSubscriptionIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NewsLetterSubscriptionGuid", DbType="UniqueIdentifier NOT NULL")]
		public System.Guid NewsLetterSubscriptionGuid
		{
			get
			{
				return this._NewsLetterSubscriptionGuid;
			}
			set
			{
				if ((this._NewsLetterSubscriptionGuid != value))
				{
					this.OnNewsLetterSubscriptionGuidChanging(value);
					this.SendPropertyChanging();
					this._NewsLetterSubscriptionGuid = value;
					this.SendPropertyChanged("NewsLetterSubscriptionGuid");
					this.OnNewsLetterSubscriptionGuidChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Email", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string Email
		{
			get
			{
				return this._Email;
			}
			set
			{
				if ((this._Email != value))
				{
					this.OnEmailChanging(value);
					this.SendPropertyChanging();
					this._Email = value;
					this.SendPropertyChanged("Email");
					this.OnEmailChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Active", DbType="Bit NOT NULL")]
		public bool Active
		{
			get
			{
				return this._Active;
			}
			set
			{
				if ((this._Active != value))
				{
					this.OnActiveChanging(value);
					this.SendPropertyChanging();
					this._Active = value;
					this.SendPropertyChanged("Active");
					this.OnActiveChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Order")]
	public partial class Nop190_Order : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _OrderID;
		
		private System.Guid _OrderGUID;
		
		private int _CustomerID;
		
		private int _CustomerLanguageID;
		
		private int _CustomerTaxDisplayTypeID;
		
		private string _CustomerIP;
		
		private decimal _OrderSubtotalInclTax;
		
		private decimal _OrderSubtotalExclTax;
		
		private decimal _OrderSubTotalDiscountInclTax;
		
		private decimal _OrderSubTotalDiscountExclTax;
		
		private decimal _OrderShippingInclTax;
		
		private decimal _OrderShippingExclTax;
		
		private decimal _PaymentMethodAdditionalFeeInclTax;
		
		private decimal _PaymentMethodAdditionalFeeExclTax;
		
		private string _TaxRates;
		
		private decimal _OrderTax;
		
		private decimal _OrderTotal;
		
		private decimal _RefundedAmount;
		
		private decimal _OrderDiscount;
		
		private decimal _OrderSubtotalInclTaxInCustomerCurrency;
		
		private decimal _OrderSubtotalExclTaxInCustomerCurrency;
		
		private decimal _OrderSubTotalDiscountInclTaxInCustomerCurrency;
		
		private decimal _OrderSubTotalDiscountExclTaxInCustomerCurrency;
		
		private decimal _OrderShippingInclTaxInCustomerCurrency;
		
		private decimal _OrderShippingExclTaxInCustomerCurrency;
		
		private decimal _PaymentMethodAdditionalFeeInclTaxInCustomerCurrency;
		
		private decimal _PaymentMethodAdditionalFeeExclTaxInCustomerCurrency;
		
		private string _TaxRatesInCustomerCurrency;
		
		private decimal _OrderTaxInCustomerCurrency;
		
		private decimal _OrderTotalInCustomerCurrency;
		
		private decimal _OrderDiscountInCustomerCurrency;
		
		private string _CustomerCurrencyCode;
		
		private string _CheckoutAttributeDescription;
		
		private string _CheckoutAttributesXML;
		
		private decimal _OrderWeight;
		
		private int _AffiliateID;
		
		private int _OrderStatusID;
		
		private bool _AllowStoringCreditCardNumber;
		
		private string _CardType;
		
		private string _CardName;
		
		private string _CardNumber;
		
		private string _MaskedCreditCardNumber;
		
		private string _CardCVV2;
		
		private string _CardExpirationMonth;
		
		private string _CardExpirationYear;
		
		private int _PaymentMethodID;
		
		private string _PaymentMethodName;
		
		private string _AuthorizationTransactionID;
		
		private string _AuthorizationTransactionCode;
		
		private string _AuthorizationTransactionResult;
		
		private string _CaptureTransactionID;
		
		private string _CaptureTransactionResult;
		
		private string _SubscriptionTransactionID;
		
		private string _PurchaseOrderNumber;
		
		private int _PaymentStatusID;
		
		private System.Nullable<System.DateTime> _PaidDate;
		
		private string _BillingFirstName;
		
		private string _BillingLastName;
		
		private string _BillingPhoneNumber;
		
		private string _BillingEmail;
		
		private string _BillingFaxNumber;
		
		private string _BillingCompany;
		
		private string _BillingAddress1;
		
		private string _BillingAddress2;
		
		private string _BillingCity;
		
		private string _BillingStateProvince;
		
		private int _BillingStateProvinceID;
		
		private string _BillingZipPostalCode;
		
		private string _BillingCountry;
		
		private int _BillingCountryID;
		
		private int _ShippingStatusID;
		
		private string _ShippingFirstName;
		
		private string _ShippingLastName;
		
		private string _ShippingPhoneNumber;
		
		private string _ShippingEmail;
		
		private string _ShippingFaxNumber;
		
		private string _ShippingCompany;
		
		private string _ShippingAddress1;
		
		private string _ShippingAddress2;
		
		private string _ShippingCity;
		
		private string _ShippingStateProvince;
		
		private int _ShippingStateProvinceID;
		
		private string _ShippingZipPostalCode;
		
		private string _ShippingCountry;
		
		private int _ShippingCountryID;
		
		private string _ShippingMethod;
		
		private int _ShippingRateComputationMethodID;
		
		private System.Nullable<System.DateTime> _ShippedDate;
		
		private string _TrackingNumber;
		
		private System.Nullable<System.DateTime> _DeliveryDate;
		
		private string _VatNumber;
		
		private bool _Deleted;
		
		private System.DateTime _CreatedOn;
		
		private EntitySet<Nop190_DiscountUsageHistory> _Nop190_DiscountUsageHistories;
		
		private EntitySet<Nop190_OrderNote> _Nop190_OrderNotes;
		
		private EntitySet<Nop190_OrderProductVariant> _Nop190_OrderProductVariants;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnOrderIDChanging(int value);
    partial void OnOrderIDChanged();
    partial void OnOrderGUIDChanging(System.Guid value);
    partial void OnOrderGUIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnCustomerLanguageIDChanging(int value);
    partial void OnCustomerLanguageIDChanged();
    partial void OnCustomerTaxDisplayTypeIDChanging(int value);
    partial void OnCustomerTaxDisplayTypeIDChanged();
    partial void OnCustomerIPChanging(string value);
    partial void OnCustomerIPChanged();
    partial void OnOrderSubtotalInclTaxChanging(decimal value);
    partial void OnOrderSubtotalInclTaxChanged();
    partial void OnOrderSubtotalExclTaxChanging(decimal value);
    partial void OnOrderSubtotalExclTaxChanged();
    partial void OnOrderSubTotalDiscountInclTaxChanging(decimal value);
    partial void OnOrderSubTotalDiscountInclTaxChanged();
    partial void OnOrderSubTotalDiscountExclTaxChanging(decimal value);
    partial void OnOrderSubTotalDiscountExclTaxChanged();
    partial void OnOrderShippingInclTaxChanging(decimal value);
    partial void OnOrderShippingInclTaxChanged();
    partial void OnOrderShippingExclTaxChanging(decimal value);
    partial void OnOrderShippingExclTaxChanged();
    partial void OnPaymentMethodAdditionalFeeInclTaxChanging(decimal value);
    partial void OnPaymentMethodAdditionalFeeInclTaxChanged();
    partial void OnPaymentMethodAdditionalFeeExclTaxChanging(decimal value);
    partial void OnPaymentMethodAdditionalFeeExclTaxChanged();
    partial void OnTaxRatesChanging(string value);
    partial void OnTaxRatesChanged();
    partial void OnOrderTaxChanging(decimal value);
    partial void OnOrderTaxChanged();
    partial void OnOrderTotalChanging(decimal value);
    partial void OnOrderTotalChanged();
    partial void OnRefundedAmountChanging(decimal value);
    partial void OnRefundedAmountChanged();
    partial void OnOrderDiscountChanging(decimal value);
    partial void OnOrderDiscountChanged();
    partial void OnOrderSubtotalInclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnOrderSubtotalInclTaxInCustomerCurrencyChanged();
    partial void OnOrderSubtotalExclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnOrderSubtotalExclTaxInCustomerCurrencyChanged();
    partial void OnOrderSubTotalDiscountInclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnOrderSubTotalDiscountInclTaxInCustomerCurrencyChanged();
    partial void OnOrderSubTotalDiscountExclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnOrderSubTotalDiscountExclTaxInCustomerCurrencyChanged();
    partial void OnOrderShippingInclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnOrderShippingInclTaxInCustomerCurrencyChanged();
    partial void OnOrderShippingExclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnOrderShippingExclTaxInCustomerCurrencyChanged();
    partial void OnPaymentMethodAdditionalFeeInclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnPaymentMethodAdditionalFeeInclTaxInCustomerCurrencyChanged();
    partial void OnPaymentMethodAdditionalFeeExclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnPaymentMethodAdditionalFeeExclTaxInCustomerCurrencyChanged();
    partial void OnTaxRatesInCustomerCurrencyChanging(string value);
    partial void OnTaxRatesInCustomerCurrencyChanged();
    partial void OnOrderTaxInCustomerCurrencyChanging(decimal value);
    partial void OnOrderTaxInCustomerCurrencyChanged();
    partial void OnOrderTotalInCustomerCurrencyChanging(decimal value);
    partial void OnOrderTotalInCustomerCurrencyChanged();
    partial void OnOrderDiscountInCustomerCurrencyChanging(decimal value);
    partial void OnOrderDiscountInCustomerCurrencyChanged();
    partial void OnCustomerCurrencyCodeChanging(string value);
    partial void OnCustomerCurrencyCodeChanged();
    partial void OnCheckoutAttributeDescriptionChanging(string value);
    partial void OnCheckoutAttributeDescriptionChanged();
    partial void OnCheckoutAttributesXMLChanging(string value);
    partial void OnCheckoutAttributesXMLChanged();
    partial void OnOrderWeightChanging(decimal value);
    partial void OnOrderWeightChanged();
    partial void OnAffiliateIDChanging(int value);
    partial void OnAffiliateIDChanged();
    partial void OnOrderStatusIDChanging(int value);
    partial void OnOrderStatusIDChanged();
    partial void OnAllowStoringCreditCardNumberChanging(bool value);
    partial void OnAllowStoringCreditCardNumberChanged();
    partial void OnCardTypeChanging(string value);
    partial void OnCardTypeChanged();
    partial void OnCardNameChanging(string value);
    partial void OnCardNameChanged();
    partial void OnCardNumberChanging(string value);
    partial void OnCardNumberChanged();
    partial void OnMaskedCreditCardNumberChanging(string value);
    partial void OnMaskedCreditCardNumberChanged();
    partial void OnCardCVV2Changing(string value);
    partial void OnCardCVV2Changed();
    partial void OnCardExpirationMonthChanging(string value);
    partial void OnCardExpirationMonthChanged();
    partial void OnCardExpirationYearChanging(string value);
    partial void OnCardExpirationYearChanged();
    partial void OnPaymentMethodIDChanging(int value);
    partial void OnPaymentMethodIDChanged();
    partial void OnPaymentMethodNameChanging(string value);
    partial void OnPaymentMethodNameChanged();
    partial void OnAuthorizationTransactionIDChanging(string value);
    partial void OnAuthorizationTransactionIDChanged();
    partial void OnAuthorizationTransactionCodeChanging(string value);
    partial void OnAuthorizationTransactionCodeChanged();
    partial void OnAuthorizationTransactionResultChanging(string value);
    partial void OnAuthorizationTransactionResultChanged();
    partial void OnCaptureTransactionIDChanging(string value);
    partial void OnCaptureTransactionIDChanged();
    partial void OnCaptureTransactionResultChanging(string value);
    partial void OnCaptureTransactionResultChanged();
    partial void OnSubscriptionTransactionIDChanging(string value);
    partial void OnSubscriptionTransactionIDChanged();
    partial void OnPurchaseOrderNumberChanging(string value);
    partial void OnPurchaseOrderNumberChanged();
    partial void OnPaymentStatusIDChanging(int value);
    partial void OnPaymentStatusIDChanged();
    partial void OnPaidDateChanging(System.Nullable<System.DateTime> value);
    partial void OnPaidDateChanged();
    partial void OnBillingFirstNameChanging(string value);
    partial void OnBillingFirstNameChanged();
    partial void OnBillingLastNameChanging(string value);
    partial void OnBillingLastNameChanged();
    partial void OnBillingPhoneNumberChanging(string value);
    partial void OnBillingPhoneNumberChanged();
    partial void OnBillingEmailChanging(string value);
    partial void OnBillingEmailChanged();
    partial void OnBillingFaxNumberChanging(string value);
    partial void OnBillingFaxNumberChanged();
    partial void OnBillingCompanyChanging(string value);
    partial void OnBillingCompanyChanged();
    partial void OnBillingAddress1Changing(string value);
    partial void OnBillingAddress1Changed();
    partial void OnBillingAddress2Changing(string value);
    partial void OnBillingAddress2Changed();
    partial void OnBillingCityChanging(string value);
    partial void OnBillingCityChanged();
    partial void OnBillingStateProvinceChanging(string value);
    partial void OnBillingStateProvinceChanged();
    partial void OnBillingStateProvinceIDChanging(int value);
    partial void OnBillingStateProvinceIDChanged();
    partial void OnBillingZipPostalCodeChanging(string value);
    partial void OnBillingZipPostalCodeChanged();
    partial void OnBillingCountryChanging(string value);
    partial void OnBillingCountryChanged();
    partial void OnBillingCountryIDChanging(int value);
    partial void OnBillingCountryIDChanged();
    partial void OnShippingStatusIDChanging(int value);
    partial void OnShippingStatusIDChanged();
    partial void OnShippingFirstNameChanging(string value);
    partial void OnShippingFirstNameChanged();
    partial void OnShippingLastNameChanging(string value);
    partial void OnShippingLastNameChanged();
    partial void OnShippingPhoneNumberChanging(string value);
    partial void OnShippingPhoneNumberChanged();
    partial void OnShippingEmailChanging(string value);
    partial void OnShippingEmailChanged();
    partial void OnShippingFaxNumberChanging(string value);
    partial void OnShippingFaxNumberChanged();
    partial void OnShippingCompanyChanging(string value);
    partial void OnShippingCompanyChanged();
    partial void OnShippingAddress1Changing(string value);
    partial void OnShippingAddress1Changed();
    partial void OnShippingAddress2Changing(string value);
    partial void OnShippingAddress2Changed();
    partial void OnShippingCityChanging(string value);
    partial void OnShippingCityChanged();
    partial void OnShippingStateProvinceChanging(string value);
    partial void OnShippingStateProvinceChanged();
    partial void OnShippingStateProvinceIDChanging(int value);
    partial void OnShippingStateProvinceIDChanged();
    partial void OnShippingZipPostalCodeChanging(string value);
    partial void OnShippingZipPostalCodeChanged();
    partial void OnShippingCountryChanging(string value);
    partial void OnShippingCountryChanged();
    partial void OnShippingCountryIDChanging(int value);
    partial void OnShippingCountryIDChanged();
    partial void OnShippingMethodChanging(string value);
    partial void OnShippingMethodChanged();
    partial void OnShippingRateComputationMethodIDChanging(int value);
    partial void OnShippingRateComputationMethodIDChanged();
    partial void OnShippedDateChanging(System.Nullable<System.DateTime> value);
    partial void OnShippedDateChanged();
    partial void OnTrackingNumberChanging(string value);
    partial void OnTrackingNumberChanged();
    partial void OnDeliveryDateChanging(System.Nullable<System.DateTime> value);
    partial void OnDeliveryDateChanged();
    partial void OnVatNumberChanging(string value);
    partial void OnVatNumberChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_Order()
		{
			this._Nop190_DiscountUsageHistories = new EntitySet<Nop190_DiscountUsageHistory>(new Action<Nop190_DiscountUsageHistory>(this.attach_Nop190_DiscountUsageHistories), new Action<Nop190_DiscountUsageHistory>(this.detach_Nop190_DiscountUsageHistories));
			this._Nop190_OrderNotes = new EntitySet<Nop190_OrderNote>(new Action<Nop190_OrderNote>(this.attach_Nop190_OrderNotes), new Action<Nop190_OrderNote>(this.detach_Nop190_OrderNotes));
			this._Nop190_OrderProductVariants = new EntitySet<Nop190_OrderProductVariant>(new Action<Nop190_OrderProductVariant>(this.attach_Nop190_OrderProductVariants), new Action<Nop190_OrderProductVariant>(this.detach_Nop190_OrderProductVariants));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int OrderID
		{
			get
			{
				return this._OrderID;
			}
			set
			{
				if ((this._OrderID != value))
				{
					this.OnOrderIDChanging(value);
					this.SendPropertyChanging();
					this._OrderID = value;
					this.SendPropertyChanged("OrderID");
					this.OnOrderIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderGUID", DbType="UniqueIdentifier NOT NULL")]
		public System.Guid OrderGUID
		{
			get
			{
				return this._OrderGUID;
			}
			set
			{
				if ((this._OrderGUID != value))
				{
					this.OnOrderGUIDChanging(value);
					this.SendPropertyChanging();
					this._OrderGUID = value;
					this.SendPropertyChanged("OrderGUID");
					this.OnOrderGUIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerLanguageID", DbType="Int NOT NULL")]
		public int CustomerLanguageID
		{
			get
			{
				return this._CustomerLanguageID;
			}
			set
			{
				if ((this._CustomerLanguageID != value))
				{
					this.OnCustomerLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerLanguageID = value;
					this.SendPropertyChanged("CustomerLanguageID");
					this.OnCustomerLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerTaxDisplayTypeID", DbType="Int NOT NULL")]
		public int CustomerTaxDisplayTypeID
		{
			get
			{
				return this._CustomerTaxDisplayTypeID;
			}
			set
			{
				if ((this._CustomerTaxDisplayTypeID != value))
				{
					this.OnCustomerTaxDisplayTypeIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerTaxDisplayTypeID = value;
					this.SendPropertyChanged("CustomerTaxDisplayTypeID");
					this.OnCustomerTaxDisplayTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerIP", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string CustomerIP
		{
			get
			{
				return this._CustomerIP;
			}
			set
			{
				if ((this._CustomerIP != value))
				{
					this.OnCustomerIPChanging(value);
					this.SendPropertyChanging();
					this._CustomerIP = value;
					this.SendPropertyChanged("CustomerIP");
					this.OnCustomerIPChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderSubtotalInclTax", DbType="Money NOT NULL")]
		public decimal OrderSubtotalInclTax
		{
			get
			{
				return this._OrderSubtotalInclTax;
			}
			set
			{
				if ((this._OrderSubtotalInclTax != value))
				{
					this.OnOrderSubtotalInclTaxChanging(value);
					this.SendPropertyChanging();
					this._OrderSubtotalInclTax = value;
					this.SendPropertyChanged("OrderSubtotalInclTax");
					this.OnOrderSubtotalInclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderSubtotalExclTax", DbType="Money NOT NULL")]
		public decimal OrderSubtotalExclTax
		{
			get
			{
				return this._OrderSubtotalExclTax;
			}
			set
			{
				if ((this._OrderSubtotalExclTax != value))
				{
					this.OnOrderSubtotalExclTaxChanging(value);
					this.SendPropertyChanging();
					this._OrderSubtotalExclTax = value;
					this.SendPropertyChanged("OrderSubtotalExclTax");
					this.OnOrderSubtotalExclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderSubTotalDiscountInclTax", DbType="Money NOT NULL")]
		public decimal OrderSubTotalDiscountInclTax
		{
			get
			{
				return this._OrderSubTotalDiscountInclTax;
			}
			set
			{
				if ((this._OrderSubTotalDiscountInclTax != value))
				{
					this.OnOrderSubTotalDiscountInclTaxChanging(value);
					this.SendPropertyChanging();
					this._OrderSubTotalDiscountInclTax = value;
					this.SendPropertyChanged("OrderSubTotalDiscountInclTax");
					this.OnOrderSubTotalDiscountInclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderSubTotalDiscountExclTax", DbType="Money NOT NULL")]
		public decimal OrderSubTotalDiscountExclTax
		{
			get
			{
				return this._OrderSubTotalDiscountExclTax;
			}
			set
			{
				if ((this._OrderSubTotalDiscountExclTax != value))
				{
					this.OnOrderSubTotalDiscountExclTaxChanging(value);
					this.SendPropertyChanging();
					this._OrderSubTotalDiscountExclTax = value;
					this.SendPropertyChanged("OrderSubTotalDiscountExclTax");
					this.OnOrderSubTotalDiscountExclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderShippingInclTax", DbType="Money NOT NULL")]
		public decimal OrderShippingInclTax
		{
			get
			{
				return this._OrderShippingInclTax;
			}
			set
			{
				if ((this._OrderShippingInclTax != value))
				{
					this.OnOrderShippingInclTaxChanging(value);
					this.SendPropertyChanging();
					this._OrderShippingInclTax = value;
					this.SendPropertyChanged("OrderShippingInclTax");
					this.OnOrderShippingInclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderShippingExclTax", DbType="Money NOT NULL")]
		public decimal OrderShippingExclTax
		{
			get
			{
				return this._OrderShippingExclTax;
			}
			set
			{
				if ((this._OrderShippingExclTax != value))
				{
					this.OnOrderShippingExclTaxChanging(value);
					this.SendPropertyChanging();
					this._OrderShippingExclTax = value;
					this.SendPropertyChanged("OrderShippingExclTax");
					this.OnOrderShippingExclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PaymentMethodAdditionalFeeInclTax", DbType="Money NOT NULL")]
		public decimal PaymentMethodAdditionalFeeInclTax
		{
			get
			{
				return this._PaymentMethodAdditionalFeeInclTax;
			}
			set
			{
				if ((this._PaymentMethodAdditionalFeeInclTax != value))
				{
					this.OnPaymentMethodAdditionalFeeInclTaxChanging(value);
					this.SendPropertyChanging();
					this._PaymentMethodAdditionalFeeInclTax = value;
					this.SendPropertyChanged("PaymentMethodAdditionalFeeInclTax");
					this.OnPaymentMethodAdditionalFeeInclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PaymentMethodAdditionalFeeExclTax", DbType="Money NOT NULL")]
		public decimal PaymentMethodAdditionalFeeExclTax
		{
			get
			{
				return this._PaymentMethodAdditionalFeeExclTax;
			}
			set
			{
				if ((this._PaymentMethodAdditionalFeeExclTax != value))
				{
					this.OnPaymentMethodAdditionalFeeExclTaxChanging(value);
					this.SendPropertyChanging();
					this._PaymentMethodAdditionalFeeExclTax = value;
					this.SendPropertyChanged("PaymentMethodAdditionalFeeExclTax");
					this.OnPaymentMethodAdditionalFeeExclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaxRates", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string TaxRates
		{
			get
			{
				return this._TaxRates;
			}
			set
			{
				if ((this._TaxRates != value))
				{
					this.OnTaxRatesChanging(value);
					this.SendPropertyChanging();
					this._TaxRates = value;
					this.SendPropertyChanged("TaxRates");
					this.OnTaxRatesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderTax", DbType="Money NOT NULL")]
		public decimal OrderTax
		{
			get
			{
				return this._OrderTax;
			}
			set
			{
				if ((this._OrderTax != value))
				{
					this.OnOrderTaxChanging(value);
					this.SendPropertyChanging();
					this._OrderTax = value;
					this.SendPropertyChanged("OrderTax");
					this.OnOrderTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderTotal", DbType="Money NOT NULL")]
		public decimal OrderTotal
		{
			get
			{
				return this._OrderTotal;
			}
			set
			{
				if ((this._OrderTotal != value))
				{
					this.OnOrderTotalChanging(value);
					this.SendPropertyChanging();
					this._OrderTotal = value;
					this.SendPropertyChanged("OrderTotal");
					this.OnOrderTotalChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RefundedAmount", DbType="Money NOT NULL")]
		public decimal RefundedAmount
		{
			get
			{
				return this._RefundedAmount;
			}
			set
			{
				if ((this._RefundedAmount != value))
				{
					this.OnRefundedAmountChanging(value);
					this.SendPropertyChanging();
					this._RefundedAmount = value;
					this.SendPropertyChanged("RefundedAmount");
					this.OnRefundedAmountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderDiscount", DbType="Money NOT NULL")]
		public decimal OrderDiscount
		{
			get
			{
				return this._OrderDiscount;
			}
			set
			{
				if ((this._OrderDiscount != value))
				{
					this.OnOrderDiscountChanging(value);
					this.SendPropertyChanging();
					this._OrderDiscount = value;
					this.SendPropertyChanged("OrderDiscount");
					this.OnOrderDiscountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderSubtotalInclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal OrderSubtotalInclTaxInCustomerCurrency
		{
			get
			{
				return this._OrderSubtotalInclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._OrderSubtotalInclTaxInCustomerCurrency != value))
				{
					this.OnOrderSubtotalInclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._OrderSubtotalInclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("OrderSubtotalInclTaxInCustomerCurrency");
					this.OnOrderSubtotalInclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderSubtotalExclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal OrderSubtotalExclTaxInCustomerCurrency
		{
			get
			{
				return this._OrderSubtotalExclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._OrderSubtotalExclTaxInCustomerCurrency != value))
				{
					this.OnOrderSubtotalExclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._OrderSubtotalExclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("OrderSubtotalExclTaxInCustomerCurrency");
					this.OnOrderSubtotalExclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderSubTotalDiscountInclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal OrderSubTotalDiscountInclTaxInCustomerCurrency
		{
			get
			{
				return this._OrderSubTotalDiscountInclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._OrderSubTotalDiscountInclTaxInCustomerCurrency != value))
				{
					this.OnOrderSubTotalDiscountInclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._OrderSubTotalDiscountInclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("OrderSubTotalDiscountInclTaxInCustomerCurrency");
					this.OnOrderSubTotalDiscountInclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderSubTotalDiscountExclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal OrderSubTotalDiscountExclTaxInCustomerCurrency
		{
			get
			{
				return this._OrderSubTotalDiscountExclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._OrderSubTotalDiscountExclTaxInCustomerCurrency != value))
				{
					this.OnOrderSubTotalDiscountExclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._OrderSubTotalDiscountExclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("OrderSubTotalDiscountExclTaxInCustomerCurrency");
					this.OnOrderSubTotalDiscountExclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderShippingInclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal OrderShippingInclTaxInCustomerCurrency
		{
			get
			{
				return this._OrderShippingInclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._OrderShippingInclTaxInCustomerCurrency != value))
				{
					this.OnOrderShippingInclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._OrderShippingInclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("OrderShippingInclTaxInCustomerCurrency");
					this.OnOrderShippingInclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderShippingExclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal OrderShippingExclTaxInCustomerCurrency
		{
			get
			{
				return this._OrderShippingExclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._OrderShippingExclTaxInCustomerCurrency != value))
				{
					this.OnOrderShippingExclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._OrderShippingExclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("OrderShippingExclTaxInCustomerCurrency");
					this.OnOrderShippingExclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PaymentMethodAdditionalFeeInclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal PaymentMethodAdditionalFeeInclTaxInCustomerCurrency
		{
			get
			{
				return this._PaymentMethodAdditionalFeeInclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._PaymentMethodAdditionalFeeInclTaxInCustomerCurrency != value))
				{
					this.OnPaymentMethodAdditionalFeeInclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._PaymentMethodAdditionalFeeInclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("PaymentMethodAdditionalFeeInclTaxInCustomerCurrency");
					this.OnPaymentMethodAdditionalFeeInclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PaymentMethodAdditionalFeeExclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal PaymentMethodAdditionalFeeExclTaxInCustomerCurrency
		{
			get
			{
				return this._PaymentMethodAdditionalFeeExclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._PaymentMethodAdditionalFeeExclTaxInCustomerCurrency != value))
				{
					this.OnPaymentMethodAdditionalFeeExclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._PaymentMethodAdditionalFeeExclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("PaymentMethodAdditionalFeeExclTaxInCustomerCurrency");
					this.OnPaymentMethodAdditionalFeeExclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaxRatesInCustomerCurrency", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string TaxRatesInCustomerCurrency
		{
			get
			{
				return this._TaxRatesInCustomerCurrency;
			}
			set
			{
				if ((this._TaxRatesInCustomerCurrency != value))
				{
					this.OnTaxRatesInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._TaxRatesInCustomerCurrency = value;
					this.SendPropertyChanged("TaxRatesInCustomerCurrency");
					this.OnTaxRatesInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal OrderTaxInCustomerCurrency
		{
			get
			{
				return this._OrderTaxInCustomerCurrency;
			}
			set
			{
				if ((this._OrderTaxInCustomerCurrency != value))
				{
					this.OnOrderTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._OrderTaxInCustomerCurrency = value;
					this.SendPropertyChanged("OrderTaxInCustomerCurrency");
					this.OnOrderTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderTotalInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal OrderTotalInCustomerCurrency
		{
			get
			{
				return this._OrderTotalInCustomerCurrency;
			}
			set
			{
				if ((this._OrderTotalInCustomerCurrency != value))
				{
					this.OnOrderTotalInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._OrderTotalInCustomerCurrency = value;
					this.SendPropertyChanged("OrderTotalInCustomerCurrency");
					this.OnOrderTotalInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderDiscountInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal OrderDiscountInCustomerCurrency
		{
			get
			{
				return this._OrderDiscountInCustomerCurrency;
			}
			set
			{
				if ((this._OrderDiscountInCustomerCurrency != value))
				{
					this.OnOrderDiscountInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._OrderDiscountInCustomerCurrency = value;
					this.SendPropertyChanged("OrderDiscountInCustomerCurrency");
					this.OnOrderDiscountInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerCurrencyCode", DbType="NVarChar(5) NOT NULL", CanBeNull=false)]
		public string CustomerCurrencyCode
		{
			get
			{
				return this._CustomerCurrencyCode;
			}
			set
			{
				if ((this._CustomerCurrencyCode != value))
				{
					this.OnCustomerCurrencyCodeChanging(value);
					this.SendPropertyChanging();
					this._CustomerCurrencyCode = value;
					this.SendPropertyChanged("CustomerCurrencyCode");
					this.OnCustomerCurrencyCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CheckoutAttributeDescription", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string CheckoutAttributeDescription
		{
			get
			{
				return this._CheckoutAttributeDescription;
			}
			set
			{
				if ((this._CheckoutAttributeDescription != value))
				{
					this.OnCheckoutAttributeDescriptionChanging(value);
					this.SendPropertyChanging();
					this._CheckoutAttributeDescription = value;
					this.SendPropertyChanged("CheckoutAttributeDescription");
					this.OnCheckoutAttributeDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CheckoutAttributesXML", DbType="Xml NOT NULL", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
		public string CheckoutAttributesXML
		{
			get
			{
				return this._CheckoutAttributesXML;
			}
			set
			{
				if ((this._CheckoutAttributesXML != value))
				{
					this.OnCheckoutAttributesXMLChanging(value);
					this.SendPropertyChanging();
					this._CheckoutAttributesXML = value;
					this.SendPropertyChanged("CheckoutAttributesXML");
					this.OnCheckoutAttributesXMLChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderWeight", DbType="Decimal(18,4) NOT NULL")]
		public decimal OrderWeight
		{
			get
			{
				return this._OrderWeight;
			}
			set
			{
				if ((this._OrderWeight != value))
				{
					this.OnOrderWeightChanging(value);
					this.SendPropertyChanging();
					this._OrderWeight = value;
					this.SendPropertyChanged("OrderWeight");
					this.OnOrderWeightChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AffiliateID", DbType="Int NOT NULL")]
		public int AffiliateID
		{
			get
			{
				return this._AffiliateID;
			}
			set
			{
				if ((this._AffiliateID != value))
				{
					this.OnAffiliateIDChanging(value);
					this.SendPropertyChanging();
					this._AffiliateID = value;
					this.SendPropertyChanged("AffiliateID");
					this.OnAffiliateIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderStatusID", DbType="Int NOT NULL")]
		public int OrderStatusID
		{
			get
			{
				return this._OrderStatusID;
			}
			set
			{
				if ((this._OrderStatusID != value))
				{
					this.OnOrderStatusIDChanging(value);
					this.SendPropertyChanging();
					this._OrderStatusID = value;
					this.SendPropertyChanged("OrderStatusID");
					this.OnOrderStatusIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AllowStoringCreditCardNumber", DbType="Bit NOT NULL")]
		public bool AllowStoringCreditCardNumber
		{
			get
			{
				return this._AllowStoringCreditCardNumber;
			}
			set
			{
				if ((this._AllowStoringCreditCardNumber != value))
				{
					this.OnAllowStoringCreditCardNumberChanging(value);
					this.SendPropertyChanging();
					this._AllowStoringCreditCardNumber = value;
					this.SendPropertyChanged("AllowStoringCreditCardNumber");
					this.OnAllowStoringCreditCardNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CardType", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string CardType
		{
			get
			{
				return this._CardType;
			}
			set
			{
				if ((this._CardType != value))
				{
					this.OnCardTypeChanging(value);
					this.SendPropertyChanging();
					this._CardType = value;
					this.SendPropertyChanged("CardType");
					this.OnCardTypeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CardName", DbType="NVarChar(1000) NOT NULL", CanBeNull=false)]
		public string CardName
		{
			get
			{
				return this._CardName;
			}
			set
			{
				if ((this._CardName != value))
				{
					this.OnCardNameChanging(value);
					this.SendPropertyChanging();
					this._CardName = value;
					this.SendPropertyChanged("CardName");
					this.OnCardNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CardNumber", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string CardNumber
		{
			get
			{
				return this._CardNumber;
			}
			set
			{
				if ((this._CardNumber != value))
				{
					this.OnCardNumberChanging(value);
					this.SendPropertyChanging();
					this._CardNumber = value;
					this.SendPropertyChanged("CardNumber");
					this.OnCardNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaskedCreditCardNumber", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string MaskedCreditCardNumber
		{
			get
			{
				return this._MaskedCreditCardNumber;
			}
			set
			{
				if ((this._MaskedCreditCardNumber != value))
				{
					this.OnMaskedCreditCardNumberChanging(value);
					this.SendPropertyChanging();
					this._MaskedCreditCardNumber = value;
					this.SendPropertyChanged("MaskedCreditCardNumber");
					this.OnMaskedCreditCardNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CardCVV2", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string CardCVV2
		{
			get
			{
				return this._CardCVV2;
			}
			set
			{
				if ((this._CardCVV2 != value))
				{
					this.OnCardCVV2Changing(value);
					this.SendPropertyChanging();
					this._CardCVV2 = value;
					this.SendPropertyChanged("CardCVV2");
					this.OnCardCVV2Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CardExpirationMonth", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string CardExpirationMonth
		{
			get
			{
				return this._CardExpirationMonth;
			}
			set
			{
				if ((this._CardExpirationMonth != value))
				{
					this.OnCardExpirationMonthChanging(value);
					this.SendPropertyChanging();
					this._CardExpirationMonth = value;
					this.SendPropertyChanged("CardExpirationMonth");
					this.OnCardExpirationMonthChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CardExpirationYear", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string CardExpirationYear
		{
			get
			{
				return this._CardExpirationYear;
			}
			set
			{
				if ((this._CardExpirationYear != value))
				{
					this.OnCardExpirationYearChanging(value);
					this.SendPropertyChanging();
					this._CardExpirationYear = value;
					this.SendPropertyChanged("CardExpirationYear");
					this.OnCardExpirationYearChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PaymentMethodID", DbType="Int NOT NULL")]
		public int PaymentMethodID
		{
			get
			{
				return this._PaymentMethodID;
			}
			set
			{
				if ((this._PaymentMethodID != value))
				{
					this.OnPaymentMethodIDChanging(value);
					this.SendPropertyChanging();
					this._PaymentMethodID = value;
					this.SendPropertyChanged("PaymentMethodID");
					this.OnPaymentMethodIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PaymentMethodName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string PaymentMethodName
		{
			get
			{
				return this._PaymentMethodName;
			}
			set
			{
				if ((this._PaymentMethodName != value))
				{
					this.OnPaymentMethodNameChanging(value);
					this.SendPropertyChanging();
					this._PaymentMethodName = value;
					this.SendPropertyChanged("PaymentMethodName");
					this.OnPaymentMethodNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AuthorizationTransactionID", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string AuthorizationTransactionID
		{
			get
			{
				return this._AuthorizationTransactionID;
			}
			set
			{
				if ((this._AuthorizationTransactionID != value))
				{
					this.OnAuthorizationTransactionIDChanging(value);
					this.SendPropertyChanging();
					this._AuthorizationTransactionID = value;
					this.SendPropertyChanged("AuthorizationTransactionID");
					this.OnAuthorizationTransactionIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AuthorizationTransactionCode", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string AuthorizationTransactionCode
		{
			get
			{
				return this._AuthorizationTransactionCode;
			}
			set
			{
				if ((this._AuthorizationTransactionCode != value))
				{
					this.OnAuthorizationTransactionCodeChanging(value);
					this.SendPropertyChanging();
					this._AuthorizationTransactionCode = value;
					this.SendPropertyChanged("AuthorizationTransactionCode");
					this.OnAuthorizationTransactionCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AuthorizationTransactionResult", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string AuthorizationTransactionResult
		{
			get
			{
				return this._AuthorizationTransactionResult;
			}
			set
			{
				if ((this._AuthorizationTransactionResult != value))
				{
					this.OnAuthorizationTransactionResultChanging(value);
					this.SendPropertyChanging();
					this._AuthorizationTransactionResult = value;
					this.SendPropertyChanged("AuthorizationTransactionResult");
					this.OnAuthorizationTransactionResultChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CaptureTransactionID", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string CaptureTransactionID
		{
			get
			{
				return this._CaptureTransactionID;
			}
			set
			{
				if ((this._CaptureTransactionID != value))
				{
					this.OnCaptureTransactionIDChanging(value);
					this.SendPropertyChanging();
					this._CaptureTransactionID = value;
					this.SendPropertyChanged("CaptureTransactionID");
					this.OnCaptureTransactionIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CaptureTransactionResult", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string CaptureTransactionResult
		{
			get
			{
				return this._CaptureTransactionResult;
			}
			set
			{
				if ((this._CaptureTransactionResult != value))
				{
					this.OnCaptureTransactionResultChanging(value);
					this.SendPropertyChanging();
					this._CaptureTransactionResult = value;
					this.SendPropertyChanged("CaptureTransactionResult");
					this.OnCaptureTransactionResultChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubscriptionTransactionID", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string SubscriptionTransactionID
		{
			get
			{
				return this._SubscriptionTransactionID;
			}
			set
			{
				if ((this._SubscriptionTransactionID != value))
				{
					this.OnSubscriptionTransactionIDChanging(value);
					this.SendPropertyChanging();
					this._SubscriptionTransactionID = value;
					this.SendPropertyChanged("SubscriptionTransactionID");
					this.OnSubscriptionTransactionIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PurchaseOrderNumber", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string PurchaseOrderNumber
		{
			get
			{
				return this._PurchaseOrderNumber;
			}
			set
			{
				if ((this._PurchaseOrderNumber != value))
				{
					this.OnPurchaseOrderNumberChanging(value);
					this.SendPropertyChanging();
					this._PurchaseOrderNumber = value;
					this.SendPropertyChanged("PurchaseOrderNumber");
					this.OnPurchaseOrderNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PaymentStatusID", DbType="Int NOT NULL")]
		public int PaymentStatusID
		{
			get
			{
				return this._PaymentStatusID;
			}
			set
			{
				if ((this._PaymentStatusID != value))
				{
					this.OnPaymentStatusIDChanging(value);
					this.SendPropertyChanging();
					this._PaymentStatusID = value;
					this.SendPropertyChanged("PaymentStatusID");
					this.OnPaymentStatusIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PaidDate", DbType="DateTime")]
		public System.Nullable<System.DateTime> PaidDate
		{
			get
			{
				return this._PaidDate;
			}
			set
			{
				if ((this._PaidDate != value))
				{
					this.OnPaidDateChanging(value);
					this.SendPropertyChanging();
					this._PaidDate = value;
					this.SendPropertyChanged("PaidDate");
					this.OnPaidDateChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingFirstName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string BillingFirstName
		{
			get
			{
				return this._BillingFirstName;
			}
			set
			{
				if ((this._BillingFirstName != value))
				{
					this.OnBillingFirstNameChanging(value);
					this.SendPropertyChanging();
					this._BillingFirstName = value;
					this.SendPropertyChanged("BillingFirstName");
					this.OnBillingFirstNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingLastName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string BillingLastName
		{
			get
			{
				return this._BillingLastName;
			}
			set
			{
				if ((this._BillingLastName != value))
				{
					this.OnBillingLastNameChanging(value);
					this.SendPropertyChanging();
					this._BillingLastName = value;
					this.SendPropertyChanged("BillingLastName");
					this.OnBillingLastNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingPhoneNumber", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string BillingPhoneNumber
		{
			get
			{
				return this._BillingPhoneNumber;
			}
			set
			{
				if ((this._BillingPhoneNumber != value))
				{
					this.OnBillingPhoneNumberChanging(value);
					this.SendPropertyChanging();
					this._BillingPhoneNumber = value;
					this.SendPropertyChanged("BillingPhoneNumber");
					this.OnBillingPhoneNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingEmail", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string BillingEmail
		{
			get
			{
				return this._BillingEmail;
			}
			set
			{
				if ((this._BillingEmail != value))
				{
					this.OnBillingEmailChanging(value);
					this.SendPropertyChanging();
					this._BillingEmail = value;
					this.SendPropertyChanged("BillingEmail");
					this.OnBillingEmailChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingFaxNumber", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string BillingFaxNumber
		{
			get
			{
				return this._BillingFaxNumber;
			}
			set
			{
				if ((this._BillingFaxNumber != value))
				{
					this.OnBillingFaxNumberChanging(value);
					this.SendPropertyChanging();
					this._BillingFaxNumber = value;
					this.SendPropertyChanged("BillingFaxNumber");
					this.OnBillingFaxNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingCompany", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string BillingCompany
		{
			get
			{
				return this._BillingCompany;
			}
			set
			{
				if ((this._BillingCompany != value))
				{
					this.OnBillingCompanyChanging(value);
					this.SendPropertyChanging();
					this._BillingCompany = value;
					this.SendPropertyChanged("BillingCompany");
					this.OnBillingCompanyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingAddress1", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string BillingAddress1
		{
			get
			{
				return this._BillingAddress1;
			}
			set
			{
				if ((this._BillingAddress1 != value))
				{
					this.OnBillingAddress1Changing(value);
					this.SendPropertyChanging();
					this._BillingAddress1 = value;
					this.SendPropertyChanged("BillingAddress1");
					this.OnBillingAddress1Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingAddress2", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string BillingAddress2
		{
			get
			{
				return this._BillingAddress2;
			}
			set
			{
				if ((this._BillingAddress2 != value))
				{
					this.OnBillingAddress2Changing(value);
					this.SendPropertyChanging();
					this._BillingAddress2 = value;
					this.SendPropertyChanged("BillingAddress2");
					this.OnBillingAddress2Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingCity", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string BillingCity
		{
			get
			{
				return this._BillingCity;
			}
			set
			{
				if ((this._BillingCity != value))
				{
					this.OnBillingCityChanging(value);
					this.SendPropertyChanging();
					this._BillingCity = value;
					this.SendPropertyChanged("BillingCity");
					this.OnBillingCityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingStateProvince", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string BillingStateProvince
		{
			get
			{
				return this._BillingStateProvince;
			}
			set
			{
				if ((this._BillingStateProvince != value))
				{
					this.OnBillingStateProvinceChanging(value);
					this.SendPropertyChanging();
					this._BillingStateProvince = value;
					this.SendPropertyChanged("BillingStateProvince");
					this.OnBillingStateProvinceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingStateProvinceID", DbType="Int NOT NULL")]
		public int BillingStateProvinceID
		{
			get
			{
				return this._BillingStateProvinceID;
			}
			set
			{
				if ((this._BillingStateProvinceID != value))
				{
					this.OnBillingStateProvinceIDChanging(value);
					this.SendPropertyChanging();
					this._BillingStateProvinceID = value;
					this.SendPropertyChanged("BillingStateProvinceID");
					this.OnBillingStateProvinceIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingZipPostalCode", DbType="NVarChar(30) NOT NULL", CanBeNull=false)]
		public string BillingZipPostalCode
		{
			get
			{
				return this._BillingZipPostalCode;
			}
			set
			{
				if ((this._BillingZipPostalCode != value))
				{
					this.OnBillingZipPostalCodeChanging(value);
					this.SendPropertyChanging();
					this._BillingZipPostalCode = value;
					this.SendPropertyChanged("BillingZipPostalCode");
					this.OnBillingZipPostalCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingCountry", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string BillingCountry
		{
			get
			{
				return this._BillingCountry;
			}
			set
			{
				if ((this._BillingCountry != value))
				{
					this.OnBillingCountryChanging(value);
					this.SendPropertyChanging();
					this._BillingCountry = value;
					this.SendPropertyChanged("BillingCountry");
					this.OnBillingCountryChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BillingCountryID", DbType="Int NOT NULL")]
		public int BillingCountryID
		{
			get
			{
				return this._BillingCountryID;
			}
			set
			{
				if ((this._BillingCountryID != value))
				{
					this.OnBillingCountryIDChanging(value);
					this.SendPropertyChanging();
					this._BillingCountryID = value;
					this.SendPropertyChanged("BillingCountryID");
					this.OnBillingCountryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingStatusID", DbType="Int NOT NULL")]
		public int ShippingStatusID
		{
			get
			{
				return this._ShippingStatusID;
			}
			set
			{
				if ((this._ShippingStatusID != value))
				{
					this.OnShippingStatusIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingStatusID = value;
					this.SendPropertyChanged("ShippingStatusID");
					this.OnShippingStatusIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingFirstName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string ShippingFirstName
		{
			get
			{
				return this._ShippingFirstName;
			}
			set
			{
				if ((this._ShippingFirstName != value))
				{
					this.OnShippingFirstNameChanging(value);
					this.SendPropertyChanging();
					this._ShippingFirstName = value;
					this.SendPropertyChanged("ShippingFirstName");
					this.OnShippingFirstNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingLastName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string ShippingLastName
		{
			get
			{
				return this._ShippingLastName;
			}
			set
			{
				if ((this._ShippingLastName != value))
				{
					this.OnShippingLastNameChanging(value);
					this.SendPropertyChanging();
					this._ShippingLastName = value;
					this.SendPropertyChanged("ShippingLastName");
					this.OnShippingLastNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingPhoneNumber", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string ShippingPhoneNumber
		{
			get
			{
				return this._ShippingPhoneNumber;
			}
			set
			{
				if ((this._ShippingPhoneNumber != value))
				{
					this.OnShippingPhoneNumberChanging(value);
					this.SendPropertyChanging();
					this._ShippingPhoneNumber = value;
					this.SendPropertyChanged("ShippingPhoneNumber");
					this.OnShippingPhoneNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingEmail", DbType="NVarChar(255) NOT NULL", CanBeNull=false)]
		public string ShippingEmail
		{
			get
			{
				return this._ShippingEmail;
			}
			set
			{
				if ((this._ShippingEmail != value))
				{
					this.OnShippingEmailChanging(value);
					this.SendPropertyChanging();
					this._ShippingEmail = value;
					this.SendPropertyChanged("ShippingEmail");
					this.OnShippingEmailChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingFaxNumber", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string ShippingFaxNumber
		{
			get
			{
				return this._ShippingFaxNumber;
			}
			set
			{
				if ((this._ShippingFaxNumber != value))
				{
					this.OnShippingFaxNumberChanging(value);
					this.SendPropertyChanging();
					this._ShippingFaxNumber = value;
					this.SendPropertyChanged("ShippingFaxNumber");
					this.OnShippingFaxNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingCompany", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string ShippingCompany
		{
			get
			{
				return this._ShippingCompany;
			}
			set
			{
				if ((this._ShippingCompany != value))
				{
					this.OnShippingCompanyChanging(value);
					this.SendPropertyChanging();
					this._ShippingCompany = value;
					this.SendPropertyChanged("ShippingCompany");
					this.OnShippingCompanyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingAddress1", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string ShippingAddress1
		{
			get
			{
				return this._ShippingAddress1;
			}
			set
			{
				if ((this._ShippingAddress1 != value))
				{
					this.OnShippingAddress1Changing(value);
					this.SendPropertyChanging();
					this._ShippingAddress1 = value;
					this.SendPropertyChanged("ShippingAddress1");
					this.OnShippingAddress1Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingAddress2", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string ShippingAddress2
		{
			get
			{
				return this._ShippingAddress2;
			}
			set
			{
				if ((this._ShippingAddress2 != value))
				{
					this.OnShippingAddress2Changing(value);
					this.SendPropertyChanging();
					this._ShippingAddress2 = value;
					this.SendPropertyChanged("ShippingAddress2");
					this.OnShippingAddress2Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingCity", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string ShippingCity
		{
			get
			{
				return this._ShippingCity;
			}
			set
			{
				if ((this._ShippingCity != value))
				{
					this.OnShippingCityChanging(value);
					this.SendPropertyChanging();
					this._ShippingCity = value;
					this.SendPropertyChanged("ShippingCity");
					this.OnShippingCityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingStateProvince", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string ShippingStateProvince
		{
			get
			{
				return this._ShippingStateProvince;
			}
			set
			{
				if ((this._ShippingStateProvince != value))
				{
					this.OnShippingStateProvinceChanging(value);
					this.SendPropertyChanging();
					this._ShippingStateProvince = value;
					this.SendPropertyChanged("ShippingStateProvince");
					this.OnShippingStateProvinceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingStateProvinceID", DbType="Int NOT NULL")]
		public int ShippingStateProvinceID
		{
			get
			{
				return this._ShippingStateProvinceID;
			}
			set
			{
				if ((this._ShippingStateProvinceID != value))
				{
					this.OnShippingStateProvinceIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingStateProvinceID = value;
					this.SendPropertyChanged("ShippingStateProvinceID");
					this.OnShippingStateProvinceIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingZipPostalCode", DbType="NVarChar(30) NOT NULL", CanBeNull=false)]
		public string ShippingZipPostalCode
		{
			get
			{
				return this._ShippingZipPostalCode;
			}
			set
			{
				if ((this._ShippingZipPostalCode != value))
				{
					this.OnShippingZipPostalCodeChanging(value);
					this.SendPropertyChanging();
					this._ShippingZipPostalCode = value;
					this.SendPropertyChanged("ShippingZipPostalCode");
					this.OnShippingZipPostalCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingCountry", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string ShippingCountry
		{
			get
			{
				return this._ShippingCountry;
			}
			set
			{
				if ((this._ShippingCountry != value))
				{
					this.OnShippingCountryChanging(value);
					this.SendPropertyChanging();
					this._ShippingCountry = value;
					this.SendPropertyChanged("ShippingCountry");
					this.OnShippingCountryChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingCountryID", DbType="Int NOT NULL")]
		public int ShippingCountryID
		{
			get
			{
				return this._ShippingCountryID;
			}
			set
			{
				if ((this._ShippingCountryID != value))
				{
					this.OnShippingCountryIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingCountryID = value;
					this.SendPropertyChanged("ShippingCountryID");
					this.OnShippingCountryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingMethod", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string ShippingMethod
		{
			get
			{
				return this._ShippingMethod;
			}
			set
			{
				if ((this._ShippingMethod != value))
				{
					this.OnShippingMethodChanging(value);
					this.SendPropertyChanging();
					this._ShippingMethod = value;
					this.SendPropertyChanged("ShippingMethod");
					this.OnShippingMethodChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingRateComputationMethodID", DbType="Int NOT NULL")]
		public int ShippingRateComputationMethodID
		{
			get
			{
				return this._ShippingRateComputationMethodID;
			}
			set
			{
				if ((this._ShippingRateComputationMethodID != value))
				{
					this.OnShippingRateComputationMethodIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingRateComputationMethodID = value;
					this.SendPropertyChanged("ShippingRateComputationMethodID");
					this.OnShippingRateComputationMethodIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippedDate", DbType="DateTime")]
		public System.Nullable<System.DateTime> ShippedDate
		{
			get
			{
				return this._ShippedDate;
			}
			set
			{
				if ((this._ShippedDate != value))
				{
					this.OnShippedDateChanging(value);
					this.SendPropertyChanging();
					this._ShippedDate = value;
					this.SendPropertyChanged("ShippedDate");
					this.OnShippedDateChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TrackingNumber", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string TrackingNumber
		{
			get
			{
				return this._TrackingNumber;
			}
			set
			{
				if ((this._TrackingNumber != value))
				{
					this.OnTrackingNumberChanging(value);
					this.SendPropertyChanging();
					this._TrackingNumber = value;
					this.SendPropertyChanged("TrackingNumber");
					this.OnTrackingNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DeliveryDate", DbType="DateTime")]
		public System.Nullable<System.DateTime> DeliveryDate
		{
			get
			{
				return this._DeliveryDate;
			}
			set
			{
				if ((this._DeliveryDate != value))
				{
					this.OnDeliveryDateChanging(value);
					this.SendPropertyChanging();
					this._DeliveryDate = value;
					this.SendPropertyChanged("DeliveryDate");
					this.OnDeliveryDateChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_VatNumber", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string VatNumber
		{
			get
			{
				return this._VatNumber;
			}
			set
			{
				if ((this._VatNumber != value))
				{
					this.OnVatNumberChanging(value);
					this.SendPropertyChanging();
					this._VatNumber = value;
					this.SendPropertyChanged("VatNumber");
					this.OnVatNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Order_Nop190_DiscountUsageHistory", Storage="_Nop190_DiscountUsageHistories", ThisKey="OrderID", OtherKey="OrderID")]
		public EntitySet<Nop190_DiscountUsageHistory> Nop190_DiscountUsageHistories
		{
			get
			{
				return this._Nop190_DiscountUsageHistories;
			}
			set
			{
				this._Nop190_DiscountUsageHistories.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Order_Nop190_OrderNote", Storage="_Nop190_OrderNotes", ThisKey="OrderID", OtherKey="OrderID")]
		public EntitySet<Nop190_OrderNote> Nop190_OrderNotes
		{
			get
			{
				return this._Nop190_OrderNotes;
			}
			set
			{
				this._Nop190_OrderNotes.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Order_Nop190_OrderProductVariant", Storage="_Nop190_OrderProductVariants", ThisKey="OrderID", OtherKey="OrderID")]
		public EntitySet<Nop190_OrderProductVariant> Nop190_OrderProductVariants
		{
			get
			{
				return this._Nop190_OrderProductVariants;
			}
			set
			{
				this._Nop190_OrderProductVariants.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_DiscountUsageHistories(Nop190_DiscountUsageHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Order = this;
		}
		
		private void detach_Nop190_DiscountUsageHistories(Nop190_DiscountUsageHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Order = null;
		}
		
		private void attach_Nop190_OrderNotes(Nop190_OrderNote entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Order = this;
		}
		
		private void detach_Nop190_OrderNotes(Nop190_OrderNote entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Order = null;
		}
		
		private void attach_Nop190_OrderProductVariants(Nop190_OrderProductVariant entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Order = this;
		}
		
		private void detach_Nop190_OrderProductVariants(Nop190_OrderProductVariant entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Order = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_OrderNote")]
	public partial class Nop190_OrderNote : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _OrderNoteID;
		
		private int _OrderID;
		
		private string _Note;
		
		private bool _DisplayToCustomer;
		
		private System.DateTime _CreatedOn;
		
		private EntityRef<Nop190_Order> _Nop190_Order;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnOrderNoteIDChanging(int value);
    partial void OnOrderNoteIDChanged();
    partial void OnOrderIDChanging(int value);
    partial void OnOrderIDChanged();
    partial void OnNoteChanging(string value);
    partial void OnNoteChanged();
    partial void OnDisplayToCustomerChanging(bool value);
    partial void OnDisplayToCustomerChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_OrderNote()
		{
			this._Nop190_Order = default(EntityRef<Nop190_Order>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderNoteID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int OrderNoteID
		{
			get
			{
				return this._OrderNoteID;
			}
			set
			{
				if ((this._OrderNoteID != value))
				{
					this.OnOrderNoteIDChanging(value);
					this.SendPropertyChanging();
					this._OrderNoteID = value;
					this.SendPropertyChanged("OrderNoteID");
					this.OnOrderNoteIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderID", DbType="Int NOT NULL")]
		public int OrderID
		{
			get
			{
				return this._OrderID;
			}
			set
			{
				if ((this._OrderID != value))
				{
					if (this._Nop190_Order.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnOrderIDChanging(value);
					this.SendPropertyChanging();
					this._OrderID = value;
					this.SendPropertyChanged("OrderID");
					this.OnOrderIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Note", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string Note
		{
			get
			{
				return this._Note;
			}
			set
			{
				if ((this._Note != value))
				{
					this.OnNoteChanging(value);
					this.SendPropertyChanging();
					this._Note = value;
					this.SendPropertyChanged("Note");
					this.OnNoteChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayToCustomer", DbType="Bit NOT NULL")]
		public bool DisplayToCustomer
		{
			get
			{
				return this._DisplayToCustomer;
			}
			set
			{
				if ((this._DisplayToCustomer != value))
				{
					this.OnDisplayToCustomerChanging(value);
					this.SendPropertyChanging();
					this._DisplayToCustomer = value;
					this.SendPropertyChanged("DisplayToCustomer");
					this.OnDisplayToCustomerChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Order_Nop190_OrderNote", Storage="_Nop190_Order", ThisKey="OrderID", OtherKey="OrderID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Order Nop190_Order
		{
			get
			{
				return this._Nop190_Order.Entity;
			}
			set
			{
				Nop190_Order previousValue = this._Nop190_Order.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Order.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Order.Entity = null;
						previousValue.Nop190_OrderNotes.Remove(this);
					}
					this._Nop190_Order.Entity = value;
					if ((value != null))
					{
						value.Nop190_OrderNotes.Add(this);
						this._OrderID = value.OrderID;
					}
					else
					{
						this._OrderID = default(int);
					}
					this.SendPropertyChanged("Nop190_Order");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_OrderProductVariant")]
	public partial class Nop190_OrderProductVariant : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _OrderProductVariantID;
		
		private int _OrderID;
		
		private int _ProductVariantID;
		
		private decimal _UnitPriceInclTax;
		
		private decimal _UnitPriceExclTax;
		
		private decimal _PriceInclTax;
		
		private decimal _PriceExclTax;
		
		private decimal _UnitPriceInclTaxInCustomerCurrency;
		
		private decimal _UnitPriceExclTaxInCustomerCurrency;
		
		private decimal _PriceInclTaxInCustomerCurrency;
		
		private decimal _PriceExclTaxInCustomerCurrency;
		
		private string _AttributeDescription;
		
		private string _AttributesXML;
		
		private int _Quantity;
		
		private decimal _DiscountAmountInclTax;
		
		private decimal _DiscountAmountExclTax;
		
		private int _DownloadCount;
		
		private System.Guid _OrderProductVariantGUID;
		
		private bool _IsDownloadActivated;
		
		private int _LicenseDownloadID;
		
		private EntitySet<Nop190_GiftCard> _Nop190_GiftCards;
		
		private EntitySet<Nop190_ReturnRequest> _Nop190_ReturnRequests;
		
		private EntityRef<Nop190_Order> _Nop190_Order;
		
		private EntityRef<Nop190_ProductVariant> _Nop190_ProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnOrderProductVariantIDChanging(int value);
    partial void OnOrderProductVariantIDChanged();
    partial void OnOrderIDChanging(int value);
    partial void OnOrderIDChanged();
    partial void OnProductVariantIDChanging(int value);
    partial void OnProductVariantIDChanged();
    partial void OnUnitPriceInclTaxChanging(decimal value);
    partial void OnUnitPriceInclTaxChanged();
    partial void OnUnitPriceExclTaxChanging(decimal value);
    partial void OnUnitPriceExclTaxChanged();
    partial void OnPriceInclTaxChanging(decimal value);
    partial void OnPriceInclTaxChanged();
    partial void OnPriceExclTaxChanging(decimal value);
    partial void OnPriceExclTaxChanged();
    partial void OnUnitPriceInclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnUnitPriceInclTaxInCustomerCurrencyChanged();
    partial void OnUnitPriceExclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnUnitPriceExclTaxInCustomerCurrencyChanged();
    partial void OnPriceInclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnPriceInclTaxInCustomerCurrencyChanged();
    partial void OnPriceExclTaxInCustomerCurrencyChanging(decimal value);
    partial void OnPriceExclTaxInCustomerCurrencyChanged();
    partial void OnAttributeDescriptionChanging(string value);
    partial void OnAttributeDescriptionChanged();
    partial void OnAttributesXMLChanging(string value);
    partial void OnAttributesXMLChanged();
    partial void OnQuantityChanging(int value);
    partial void OnQuantityChanged();
    partial void OnDiscountAmountInclTaxChanging(decimal value);
    partial void OnDiscountAmountInclTaxChanged();
    partial void OnDiscountAmountExclTaxChanging(decimal value);
    partial void OnDiscountAmountExclTaxChanged();
    partial void OnDownloadCountChanging(int value);
    partial void OnDownloadCountChanged();
    partial void OnOrderProductVariantGUIDChanging(System.Guid value);
    partial void OnOrderProductVariantGUIDChanged();
    partial void OnIsDownloadActivatedChanging(bool value);
    partial void OnIsDownloadActivatedChanged();
    partial void OnLicenseDownloadIDChanging(int value);
    partial void OnLicenseDownloadIDChanged();
    #endregion
		
		public Nop190_OrderProductVariant()
		{
			this._Nop190_GiftCards = new EntitySet<Nop190_GiftCard>(new Action<Nop190_GiftCard>(this.attach_Nop190_GiftCards), new Action<Nop190_GiftCard>(this.detach_Nop190_GiftCards));
			this._Nop190_ReturnRequests = new EntitySet<Nop190_ReturnRequest>(new Action<Nop190_ReturnRequest>(this.attach_Nop190_ReturnRequests), new Action<Nop190_ReturnRequest>(this.detach_Nop190_ReturnRequests));
			this._Nop190_Order = default(EntityRef<Nop190_Order>);
			this._Nop190_ProductVariant = default(EntityRef<Nop190_ProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderProductVariantID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int OrderProductVariantID
		{
			get
			{
				return this._OrderProductVariantID;
			}
			set
			{
				if ((this._OrderProductVariantID != value))
				{
					this.OnOrderProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._OrderProductVariantID = value;
					this.SendPropertyChanged("OrderProductVariantID");
					this.OnOrderProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderID", DbType="Int NOT NULL")]
		public int OrderID
		{
			get
			{
				return this._OrderID;
			}
			set
			{
				if ((this._OrderID != value))
				{
					if (this._Nop190_Order.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnOrderIDChanging(value);
					this.SendPropertyChanging();
					this._OrderID = value;
					this.SendPropertyChanged("OrderID");
					this.OnOrderIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantID", DbType="Int NOT NULL")]
		public int ProductVariantID
		{
			get
			{
				return this._ProductVariantID;
			}
			set
			{
				if ((this._ProductVariantID != value))
				{
					if (this._Nop190_ProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantID = value;
					this.SendPropertyChanged("ProductVariantID");
					this.OnProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UnitPriceInclTax", DbType="Money NOT NULL")]
		public decimal UnitPriceInclTax
		{
			get
			{
				return this._UnitPriceInclTax;
			}
			set
			{
				if ((this._UnitPriceInclTax != value))
				{
					this.OnUnitPriceInclTaxChanging(value);
					this.SendPropertyChanging();
					this._UnitPriceInclTax = value;
					this.SendPropertyChanged("UnitPriceInclTax");
					this.OnUnitPriceInclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UnitPriceExclTax", DbType="Money NOT NULL")]
		public decimal UnitPriceExclTax
		{
			get
			{
				return this._UnitPriceExclTax;
			}
			set
			{
				if ((this._UnitPriceExclTax != value))
				{
					this.OnUnitPriceExclTaxChanging(value);
					this.SendPropertyChanging();
					this._UnitPriceExclTax = value;
					this.SendPropertyChanged("UnitPriceExclTax");
					this.OnUnitPriceExclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceInclTax", DbType="Money NOT NULL")]
		public decimal PriceInclTax
		{
			get
			{
				return this._PriceInclTax;
			}
			set
			{
				if ((this._PriceInclTax != value))
				{
					this.OnPriceInclTaxChanging(value);
					this.SendPropertyChanging();
					this._PriceInclTax = value;
					this.SendPropertyChanged("PriceInclTax");
					this.OnPriceInclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceExclTax", DbType="Money NOT NULL")]
		public decimal PriceExclTax
		{
			get
			{
				return this._PriceExclTax;
			}
			set
			{
				if ((this._PriceExclTax != value))
				{
					this.OnPriceExclTaxChanging(value);
					this.SendPropertyChanging();
					this._PriceExclTax = value;
					this.SendPropertyChanged("PriceExclTax");
					this.OnPriceExclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UnitPriceInclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal UnitPriceInclTaxInCustomerCurrency
		{
			get
			{
				return this._UnitPriceInclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._UnitPriceInclTaxInCustomerCurrency != value))
				{
					this.OnUnitPriceInclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._UnitPriceInclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("UnitPriceInclTaxInCustomerCurrency");
					this.OnUnitPriceInclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UnitPriceExclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal UnitPriceExclTaxInCustomerCurrency
		{
			get
			{
				return this._UnitPriceExclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._UnitPriceExclTaxInCustomerCurrency != value))
				{
					this.OnUnitPriceExclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._UnitPriceExclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("UnitPriceExclTaxInCustomerCurrency");
					this.OnUnitPriceExclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceInclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal PriceInclTaxInCustomerCurrency
		{
			get
			{
				return this._PriceInclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._PriceInclTaxInCustomerCurrency != value))
				{
					this.OnPriceInclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._PriceInclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("PriceInclTaxInCustomerCurrency");
					this.OnPriceInclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceExclTaxInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal PriceExclTaxInCustomerCurrency
		{
			get
			{
				return this._PriceExclTaxInCustomerCurrency;
			}
			set
			{
				if ((this._PriceExclTaxInCustomerCurrency != value))
				{
					this.OnPriceExclTaxInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._PriceExclTaxInCustomerCurrency = value;
					this.SendPropertyChanged("PriceExclTaxInCustomerCurrency");
					this.OnPriceExclTaxInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AttributeDescription", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string AttributeDescription
		{
			get
			{
				return this._AttributeDescription;
			}
			set
			{
				if ((this._AttributeDescription != value))
				{
					this.OnAttributeDescriptionChanging(value);
					this.SendPropertyChanging();
					this._AttributeDescription = value;
					this.SendPropertyChanged("AttributeDescription");
					this.OnAttributeDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AttributesXML", DbType="Xml NOT NULL", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
		public string AttributesXML
		{
			get
			{
				return this._AttributesXML;
			}
			set
			{
				if ((this._AttributesXML != value))
				{
					this.OnAttributesXMLChanging(value);
					this.SendPropertyChanging();
					this._AttributesXML = value;
					this.SendPropertyChanged("AttributesXML");
					this.OnAttributesXMLChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Quantity", DbType="Int NOT NULL")]
		public int Quantity
		{
			get
			{
				return this._Quantity;
			}
			set
			{
				if ((this._Quantity != value))
				{
					this.OnQuantityChanging(value);
					this.SendPropertyChanging();
					this._Quantity = value;
					this.SendPropertyChanged("Quantity");
					this.OnQuantityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountAmountInclTax", DbType="Decimal(18,4) NOT NULL")]
		public decimal DiscountAmountInclTax
		{
			get
			{
				return this._DiscountAmountInclTax;
			}
			set
			{
				if ((this._DiscountAmountInclTax != value))
				{
					this.OnDiscountAmountInclTaxChanging(value);
					this.SendPropertyChanging();
					this._DiscountAmountInclTax = value;
					this.SendPropertyChanged("DiscountAmountInclTax");
					this.OnDiscountAmountInclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountAmountExclTax", DbType="Decimal(18,4) NOT NULL")]
		public decimal DiscountAmountExclTax
		{
			get
			{
				return this._DiscountAmountExclTax;
			}
			set
			{
				if ((this._DiscountAmountExclTax != value))
				{
					this.OnDiscountAmountExclTaxChanging(value);
					this.SendPropertyChanging();
					this._DiscountAmountExclTax = value;
					this.SendPropertyChanged("DiscountAmountExclTax");
					this.OnDiscountAmountExclTaxChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DownloadCount", DbType="Int NOT NULL")]
		public int DownloadCount
		{
			get
			{
				return this._DownloadCount;
			}
			set
			{
				if ((this._DownloadCount != value))
				{
					this.OnDownloadCountChanging(value);
					this.SendPropertyChanging();
					this._DownloadCount = value;
					this.SendPropertyChanged("DownloadCount");
					this.OnDownloadCountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderProductVariantGUID", DbType="UniqueIdentifier NOT NULL")]
		public System.Guid OrderProductVariantGUID
		{
			get
			{
				return this._OrderProductVariantGUID;
			}
			set
			{
				if ((this._OrderProductVariantGUID != value))
				{
					this.OnOrderProductVariantGUIDChanging(value);
					this.SendPropertyChanging();
					this._OrderProductVariantGUID = value;
					this.SendPropertyChanged("OrderProductVariantGUID");
					this.OnOrderProductVariantGUIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsDownloadActivated", DbType="Bit NOT NULL")]
		public bool IsDownloadActivated
		{
			get
			{
				return this._IsDownloadActivated;
			}
			set
			{
				if ((this._IsDownloadActivated != value))
				{
					this.OnIsDownloadActivatedChanging(value);
					this.SendPropertyChanging();
					this._IsDownloadActivated = value;
					this.SendPropertyChanged("IsDownloadActivated");
					this.OnIsDownloadActivatedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LicenseDownloadID", DbType="Int NOT NULL")]
		public int LicenseDownloadID
		{
			get
			{
				return this._LicenseDownloadID;
			}
			set
			{
				if ((this._LicenseDownloadID != value))
				{
					this.OnLicenseDownloadIDChanging(value);
					this.SendPropertyChanging();
					this._LicenseDownloadID = value;
					this.SendPropertyChanged("LicenseDownloadID");
					this.OnLicenseDownloadIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_OrderProductVariant_Nop190_GiftCard", Storage="_Nop190_GiftCards", ThisKey="OrderProductVariantID", OtherKey="PurchasedOrderProductVariantID")]
		public EntitySet<Nop190_GiftCard> Nop190_GiftCards
		{
			get
			{
				return this._Nop190_GiftCards;
			}
			set
			{
				this._Nop190_GiftCards.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_OrderProductVariant_Nop190_ReturnRequest", Storage="_Nop190_ReturnRequests", ThisKey="OrderProductVariantID", OtherKey="OrderProductVariantId")]
		public EntitySet<Nop190_ReturnRequest> Nop190_ReturnRequests
		{
			get
			{
				return this._Nop190_ReturnRequests;
			}
			set
			{
				this._Nop190_ReturnRequests.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Order_Nop190_OrderProductVariant", Storage="_Nop190_Order", ThisKey="OrderID", OtherKey="OrderID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Order Nop190_Order
		{
			get
			{
				return this._Nop190_Order.Entity;
			}
			set
			{
				Nop190_Order previousValue = this._Nop190_Order.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Order.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Order.Entity = null;
						previousValue.Nop190_OrderProductVariants.Remove(this);
					}
					this._Nop190_Order.Entity = value;
					if ((value != null))
					{
						value.Nop190_OrderProductVariants.Add(this);
						this._OrderID = value.OrderID;
					}
					else
					{
						this._OrderID = default(int);
					}
					this.SendPropertyChanged("Nop190_Order");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_OrderProductVariant", Storage="_Nop190_ProductVariant", ThisKey="ProductVariantID", OtherKey="ProductVariantId", IsForeignKey=true)]
		public Nop190_ProductVariant Nop190_ProductVariant
		{
			get
			{
				return this._Nop190_ProductVariant.Entity;
			}
			set
			{
				Nop190_ProductVariant previousValue = this._Nop190_ProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariant.Entity = null;
						previousValue.Nop190_OrderProductVariants.Remove(this);
					}
					this._Nop190_ProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_OrderProductVariants.Add(this);
						this._ProductVariantID = value.ProductVariantId;
					}
					else
					{
						this._ProductVariantID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_GiftCards(Nop190_GiftCard entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_OrderProductVariant = this;
		}
		
		private void detach_Nop190_GiftCards(Nop190_GiftCard entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_OrderProductVariant = null;
		}
		
		private void attach_Nop190_ReturnRequests(Nop190_ReturnRequest entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_OrderProductVariant = this;
		}
		
		private void detach_Nop190_ReturnRequests(Nop190_ReturnRequest entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_OrderProductVariant = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_PaymentMethod")]
	public partial class Nop190_PaymentMethod : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _PaymentMethodID;
		
		private string _Name;
		
		private string _VisibleName;
		
		private string _Description;
		
		private string _ConfigureTemplatePath;
		
		private string _UserTemplatePath;
		
		private string _ClassName;
		
		private string _SystemKeyword;
		
		private bool _IsActive;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_PaymentMethod_RestrictedCountry> _Nop190_PaymentMethod_RestrictedCountries;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnPaymentMethodIDChanging(int value);
    partial void OnPaymentMethodIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnVisibleNameChanging(string value);
    partial void OnVisibleNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnConfigureTemplatePathChanging(string value);
    partial void OnConfigureTemplatePathChanged();
    partial void OnUserTemplatePathChanging(string value);
    partial void OnUserTemplatePathChanged();
    partial void OnClassNameChanging(string value);
    partial void OnClassNameChanged();
    partial void OnSystemKeywordChanging(string value);
    partial void OnSystemKeywordChanged();
    partial void OnIsActiveChanging(bool value);
    partial void OnIsActiveChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_PaymentMethod()
		{
			this._Nop190_PaymentMethod_RestrictedCountries = new EntitySet<Nop190_PaymentMethod_RestrictedCountry>(new Action<Nop190_PaymentMethod_RestrictedCountry>(this.attach_Nop190_PaymentMethod_RestrictedCountries), new Action<Nop190_PaymentMethod_RestrictedCountry>(this.detach_Nop190_PaymentMethod_RestrictedCountries));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PaymentMethodID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int PaymentMethodID
		{
			get
			{
				return this._PaymentMethodID;
			}
			set
			{
				if ((this._PaymentMethodID != value))
				{
					this.OnPaymentMethodIDChanging(value);
					this.SendPropertyChanging();
					this._PaymentMethodID = value;
					this.SendPropertyChanged("PaymentMethodID");
					this.OnPaymentMethodIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_VisibleName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string VisibleName
		{
			get
			{
				return this._VisibleName;
			}
			set
			{
				if ((this._VisibleName != value))
				{
					this.OnVisibleNameChanging(value);
					this.SendPropertyChanging();
					this._VisibleName = value;
					this.SendPropertyChanged("VisibleName");
					this.OnVisibleNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ConfigureTemplatePath", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string ConfigureTemplatePath
		{
			get
			{
				return this._ConfigureTemplatePath;
			}
			set
			{
				if ((this._ConfigureTemplatePath != value))
				{
					this.OnConfigureTemplatePathChanging(value);
					this.SendPropertyChanging();
					this._ConfigureTemplatePath = value;
					this.SendPropertyChanged("ConfigureTemplatePath");
					this.OnConfigureTemplatePathChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserTemplatePath", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string UserTemplatePath
		{
			get
			{
				return this._UserTemplatePath;
			}
			set
			{
				if ((this._UserTemplatePath != value))
				{
					this.OnUserTemplatePathChanging(value);
					this.SendPropertyChanging();
					this._UserTemplatePath = value;
					this.SendPropertyChanged("UserTemplatePath");
					this.OnUserTemplatePathChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ClassName", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string ClassName
		{
			get
			{
				return this._ClassName;
			}
			set
			{
				if ((this._ClassName != value))
				{
					this.OnClassNameChanging(value);
					this.SendPropertyChanging();
					this._ClassName = value;
					this.SendPropertyChanged("ClassName");
					this.OnClassNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SystemKeyword", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string SystemKeyword
		{
			get
			{
				return this._SystemKeyword;
			}
			set
			{
				if ((this._SystemKeyword != value))
				{
					this.OnSystemKeywordChanging(value);
					this.SendPropertyChanging();
					this._SystemKeyword = value;
					this.SendPropertyChanged("SystemKeyword");
					this.OnSystemKeywordChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsActive", DbType="Bit NOT NULL")]
		public bool IsActive
		{
			get
			{
				return this._IsActive;
			}
			set
			{
				if ((this._IsActive != value))
				{
					this.OnIsActiveChanging(value);
					this.SendPropertyChanging();
					this._IsActive = value;
					this.SendPropertyChanged("IsActive");
					this.OnIsActiveChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_PaymentMethod_Nop190_PaymentMethod_RestrictedCountry", Storage="_Nop190_PaymentMethod_RestrictedCountries", ThisKey="PaymentMethodID", OtherKey="PaymentMethodID")]
		public EntitySet<Nop190_PaymentMethod_RestrictedCountry> Nop190_PaymentMethod_RestrictedCountries
		{
			get
			{
				return this._Nop190_PaymentMethod_RestrictedCountries;
			}
			set
			{
				this._Nop190_PaymentMethod_RestrictedCountries.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_PaymentMethod_RestrictedCountries(Nop190_PaymentMethod_RestrictedCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_PaymentMethod = this;
		}
		
		private void detach_Nop190_PaymentMethod_RestrictedCountries(Nop190_PaymentMethod_RestrictedCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_PaymentMethod = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_PaymentMethod_RestrictedCountries")]
	public partial class Nop190_PaymentMethod_RestrictedCountry : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _PaymentMethodID;
		
		private int _CountryID;
		
		private EntityRef<Nop190_Country> _Nop190_Country;
		
		private EntityRef<Nop190_PaymentMethod> _Nop190_PaymentMethod;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnPaymentMethodIDChanging(int value);
    partial void OnPaymentMethodIDChanged();
    partial void OnCountryIDChanging(int value);
    partial void OnCountryIDChanged();
    #endregion
		
		public Nop190_PaymentMethod_RestrictedCountry()
		{
			this._Nop190_Country = default(EntityRef<Nop190_Country>);
			this._Nop190_PaymentMethod = default(EntityRef<Nop190_PaymentMethod>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PaymentMethodID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int PaymentMethodID
		{
			get
			{
				return this._PaymentMethodID;
			}
			set
			{
				if ((this._PaymentMethodID != value))
				{
					if (this._Nop190_PaymentMethod.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnPaymentMethodIDChanging(value);
					this.SendPropertyChanging();
					this._PaymentMethodID = value;
					this.SendPropertyChanged("PaymentMethodID");
					this.OnPaymentMethodIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CountryID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int CountryID
		{
			get
			{
				return this._CountryID;
			}
			set
			{
				if ((this._CountryID != value))
				{
					if (this._Nop190_Country.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCountryIDChanging(value);
					this.SendPropertyChanging();
					this._CountryID = value;
					this.SendPropertyChanged("CountryID");
					this.OnCountryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Country_Nop190_PaymentMethod_RestrictedCountry", Storage="_Nop190_Country", ThisKey="CountryID", OtherKey="CountryID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Country Nop190_Country
		{
			get
			{
				return this._Nop190_Country.Entity;
			}
			set
			{
				Nop190_Country previousValue = this._Nop190_Country.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Country.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Country.Entity = null;
						previousValue.Nop190_PaymentMethod_RestrictedCountries.Remove(this);
					}
					this._Nop190_Country.Entity = value;
					if ((value != null))
					{
						value.Nop190_PaymentMethod_RestrictedCountries.Add(this);
						this._CountryID = value.CountryID;
					}
					else
					{
						this._CountryID = default(int);
					}
					this.SendPropertyChanged("Nop190_Country");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_PaymentMethod_Nop190_PaymentMethod_RestrictedCountry", Storage="_Nop190_PaymentMethod", ThisKey="PaymentMethodID", OtherKey="PaymentMethodID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_PaymentMethod Nop190_PaymentMethod
		{
			get
			{
				return this._Nop190_PaymentMethod.Entity;
			}
			set
			{
				Nop190_PaymentMethod previousValue = this._Nop190_PaymentMethod.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_PaymentMethod.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_PaymentMethod.Entity = null;
						previousValue.Nop190_PaymentMethod_RestrictedCountries.Remove(this);
					}
					this._Nop190_PaymentMethod.Entity = value;
					if ((value != null))
					{
						value.Nop190_PaymentMethod_RestrictedCountries.Add(this);
						this._PaymentMethodID = value.PaymentMethodID;
					}
					else
					{
						this._PaymentMethodID = default(int);
					}
					this.SendPropertyChanged("Nop190_PaymentMethod");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Picture")]
	public partial class Nop190_Picture : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _PictureID;
		
		private System.Data.Linq.Binary _PictureBinary;
		
		private bool _IsNew;
		
		private string _MimeType;
		
		private EntitySet<Nop190_ProductPicture> _Nop190_ProductPictures;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnPictureIDChanging(int value);
    partial void OnPictureIDChanged();
    partial void OnPictureBinaryChanging(System.Data.Linq.Binary value);
    partial void OnPictureBinaryChanged();
    partial void OnIsNewChanging(bool value);
    partial void OnIsNewChanged();
    partial void OnMimeTypeChanging(string value);
    partial void OnMimeTypeChanged();
    #endregion
		
		public Nop190_Picture()
		{
			this._Nop190_ProductPictures = new EntitySet<Nop190_ProductPicture>(new Action<Nop190_ProductPicture>(this.attach_Nop190_ProductPictures), new Action<Nop190_ProductPicture>(this.detach_Nop190_ProductPictures));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PictureID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int PictureID
		{
			get
			{
				return this._PictureID;
			}
			set
			{
				if ((this._PictureID != value))
				{
					this.OnPictureIDChanging(value);
					this.SendPropertyChanging();
					this._PictureID = value;
					this.SendPropertyChanged("PictureID");
					this.OnPictureIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PictureBinary", DbType="VarBinary(MAX) NOT NULL", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
		public System.Data.Linq.Binary PictureBinary
		{
			get
			{
				return this._PictureBinary;
			}
			set
			{
				if ((this._PictureBinary != value))
				{
					this.OnPictureBinaryChanging(value);
					this.SendPropertyChanging();
					this._PictureBinary = value;
					this.SendPropertyChanged("PictureBinary");
					this.OnPictureBinaryChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsNew", DbType="Bit NOT NULL")]
		public bool IsNew
		{
			get
			{
				return this._IsNew;
			}
			set
			{
				if ((this._IsNew != value))
				{
					this.OnIsNewChanging(value);
					this.SendPropertyChanging();
					this._IsNew = value;
					this.SendPropertyChanged("IsNew");
					this.OnIsNewChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MimeType", DbType="NVarChar(20) NOT NULL", CanBeNull=false)]
		public string MimeType
		{
			get
			{
				return this._MimeType;
			}
			set
			{
				if ((this._MimeType != value))
				{
					this.OnMimeTypeChanging(value);
					this.SendPropertyChanging();
					this._MimeType = value;
					this.SendPropertyChanged("MimeType");
					this.OnMimeTypeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Picture_Nop190_ProductPicture", Storage="_Nop190_ProductPictures", ThisKey="PictureID", OtherKey="PictureID")]
		public EntitySet<Nop190_ProductPicture> Nop190_ProductPictures
		{
			get
			{
				return this._Nop190_ProductPictures;
			}
			set
			{
				this._Nop190_ProductPictures.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ProductPictures(Nop190_ProductPicture entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Picture = this;
		}
		
		private void detach_Nop190_ProductPictures(Nop190_ProductPicture entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Picture = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Poll")]
	public partial class Nop190_Poll : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _PollID;
		
		private int _LanguageID;
		
		private string _Name;
		
		private string _SystemKeyword;
		
		private bool _Published;
		
		private bool _ShowOnHomePage;
		
		private int _DisplayOrder;
		
		private System.Nullable<System.DateTime> _StartDate;
		
		private System.Nullable<System.DateTime> _EndDate;
		
		private EntitySet<Nop190_PollAnswer> _Nop190_PollAnswers;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnPollIDChanging(int value);
    partial void OnPollIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnSystemKeywordChanging(string value);
    partial void OnSystemKeywordChanged();
    partial void OnPublishedChanging(bool value);
    partial void OnPublishedChanged();
    partial void OnShowOnHomePageChanging(bool value);
    partial void OnShowOnHomePageChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    partial void OnStartDateChanging(System.Nullable<System.DateTime> value);
    partial void OnStartDateChanged();
    partial void OnEndDateChanging(System.Nullable<System.DateTime> value);
    partial void OnEndDateChanged();
    #endregion
		
		public Nop190_Poll()
		{
			this._Nop190_PollAnswers = new EntitySet<Nop190_PollAnswer>(new Action<Nop190_PollAnswer>(this.attach_Nop190_PollAnswers), new Action<Nop190_PollAnswer>(this.detach_Nop190_PollAnswers));
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PollID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int PollID
		{
			get
			{
				return this._PollID;
			}
			set
			{
				if ((this._PollID != value))
				{
					this.OnPollIDChanging(value);
					this.SendPropertyChanging();
					this._PollID = value;
					this.SendPropertyChanged("PollID");
					this.OnPollIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SystemKeyword", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string SystemKeyword
		{
			get
			{
				return this._SystemKeyword;
			}
			set
			{
				if ((this._SystemKeyword != value))
				{
					this.OnSystemKeywordChanging(value);
					this.SendPropertyChanging();
					this._SystemKeyword = value;
					this.SendPropertyChanged("SystemKeyword");
					this.OnSystemKeywordChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Published", DbType="Bit NOT NULL")]
		public bool Published
		{
			get
			{
				return this._Published;
			}
			set
			{
				if ((this._Published != value))
				{
					this.OnPublishedChanging(value);
					this.SendPropertyChanging();
					this._Published = value;
					this.SendPropertyChanged("Published");
					this.OnPublishedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShowOnHomePage", DbType="Bit NOT NULL")]
		public bool ShowOnHomePage
		{
			get
			{
				return this._ShowOnHomePage;
			}
			set
			{
				if ((this._ShowOnHomePage != value))
				{
					this.OnShowOnHomePageChanging(value);
					this.SendPropertyChanging();
					this._ShowOnHomePage = value;
					this.SendPropertyChanged("ShowOnHomePage");
					this.OnShowOnHomePageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StartDate", DbType="DateTime")]
		public System.Nullable<System.DateTime> StartDate
		{
			get
			{
				return this._StartDate;
			}
			set
			{
				if ((this._StartDate != value))
				{
					this.OnStartDateChanging(value);
					this.SendPropertyChanging();
					this._StartDate = value;
					this.SendPropertyChanged("StartDate");
					this.OnStartDateChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EndDate", DbType="DateTime")]
		public System.Nullable<System.DateTime> EndDate
		{
			get
			{
				return this._EndDate;
			}
			set
			{
				if ((this._EndDate != value))
				{
					this.OnEndDateChanging(value);
					this.SendPropertyChanging();
					this._EndDate = value;
					this.SendPropertyChanged("EndDate");
					this.OnEndDateChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Poll_Nop190_PollAnswer", Storage="_Nop190_PollAnswers", ThisKey="PollID", OtherKey="PollID")]
		public EntitySet<Nop190_PollAnswer> Nop190_PollAnswers
		{
			get
			{
				return this._Nop190_PollAnswers;
			}
			set
			{
				this._Nop190_PollAnswers.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_Poll", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_Polls.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_Polls.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_PollAnswers(Nop190_PollAnswer entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Poll = this;
		}
		
		private void detach_Nop190_PollAnswers(Nop190_PollAnswer entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Poll = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_PollAnswer")]
	public partial class Nop190_PollAnswer : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _PollAnswerID;
		
		private int _PollID;
		
		private string _Name;
		
		private int _Count;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_PollVotingRecord> _Nop190_PollVotingRecords;
		
		private EntityRef<Nop190_Poll> _Nop190_Poll;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnPollAnswerIDChanging(int value);
    partial void OnPollAnswerIDChanged();
    partial void OnPollIDChanging(int value);
    partial void OnPollIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnCountChanging(int value);
    partial void OnCountChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_PollAnswer()
		{
			this._Nop190_PollVotingRecords = new EntitySet<Nop190_PollVotingRecord>(new Action<Nop190_PollVotingRecord>(this.attach_Nop190_PollVotingRecords), new Action<Nop190_PollVotingRecord>(this.detach_Nop190_PollVotingRecords));
			this._Nop190_Poll = default(EntityRef<Nop190_Poll>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PollAnswerID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int PollAnswerID
		{
			get
			{
				return this._PollAnswerID;
			}
			set
			{
				if ((this._PollAnswerID != value))
				{
					this.OnPollAnswerIDChanging(value);
					this.SendPropertyChanging();
					this._PollAnswerID = value;
					this.SendPropertyChanged("PollAnswerID");
					this.OnPollAnswerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PollID", DbType="Int NOT NULL")]
		public int PollID
		{
			get
			{
				return this._PollID;
			}
			set
			{
				if ((this._PollID != value))
				{
					if (this._Nop190_Poll.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnPollIDChanging(value);
					this.SendPropertyChanging();
					this._PollID = value;
					this.SendPropertyChanged("PollID");
					this.OnPollIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Count", DbType="Int NOT NULL")]
		public int Count
		{
			get
			{
				return this._Count;
			}
			set
			{
				if ((this._Count != value))
				{
					this.OnCountChanging(value);
					this.SendPropertyChanging();
					this._Count = value;
					this.SendPropertyChanged("Count");
					this.OnCountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_PollAnswer_Nop190_PollVotingRecord", Storage="_Nop190_PollVotingRecords", ThisKey="PollAnswerID", OtherKey="PollAnswerID")]
		public EntitySet<Nop190_PollVotingRecord> Nop190_PollVotingRecords
		{
			get
			{
				return this._Nop190_PollVotingRecords;
			}
			set
			{
				this._Nop190_PollVotingRecords.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Poll_Nop190_PollAnswer", Storage="_Nop190_Poll", ThisKey="PollID", OtherKey="PollID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Poll Nop190_Poll
		{
			get
			{
				return this._Nop190_Poll.Entity;
			}
			set
			{
				Nop190_Poll previousValue = this._Nop190_Poll.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Poll.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Poll.Entity = null;
						previousValue.Nop190_PollAnswers.Remove(this);
					}
					this._Nop190_Poll.Entity = value;
					if ((value != null))
					{
						value.Nop190_PollAnswers.Add(this);
						this._PollID = value.PollID;
					}
					else
					{
						this._PollID = default(int);
					}
					this.SendPropertyChanged("Nop190_Poll");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_PollVotingRecords(Nop190_PollVotingRecord entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_PollAnswer = this;
		}
		
		private void detach_Nop190_PollVotingRecords(Nop190_PollVotingRecord entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_PollAnswer = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_PollVotingRecord")]
	public partial class Nop190_PollVotingRecord : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _PollVotingRecordID;
		
		private int _PollAnswerID;
		
		private int _CustomerID;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
		private EntityRef<Nop190_PollAnswer> _Nop190_PollAnswer;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnPollVotingRecordIDChanging(int value);
    partial void OnPollVotingRecordIDChanged();
    partial void OnPollAnswerIDChanging(int value);
    partial void OnPollAnswerIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    #endregion
		
		public Nop190_PollVotingRecord()
		{
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			this._Nop190_PollAnswer = default(EntityRef<Nop190_PollAnswer>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PollVotingRecordID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int PollVotingRecordID
		{
			get
			{
				return this._PollVotingRecordID;
			}
			set
			{
				if ((this._PollVotingRecordID != value))
				{
					this.OnPollVotingRecordIDChanging(value);
					this.SendPropertyChanging();
					this._PollVotingRecordID = value;
					this.SendPropertyChanged("PollVotingRecordID");
					this.OnPollVotingRecordIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PollAnswerID", DbType="Int NOT NULL")]
		public int PollAnswerID
		{
			get
			{
				return this._PollAnswerID;
			}
			set
			{
				if ((this._PollAnswerID != value))
				{
					if (this._Nop190_PollAnswer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnPollAnswerIDChanging(value);
					this.SendPropertyChanging();
					this._PollAnswerID = value;
					this.SendPropertyChanged("PollAnswerID");
					this.OnPollAnswerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_PollVotingRecord", Storage="_Nop190_Customer", ThisKey="CustomerID", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_PollVotingRecords.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_PollVotingRecords.Add(this);
						this._CustomerID = value.CustomerID;
					}
					else
					{
						this._CustomerID = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_PollAnswer_Nop190_PollVotingRecord", Storage="_Nop190_PollAnswer", ThisKey="PollAnswerID", OtherKey="PollAnswerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_PollAnswer Nop190_PollAnswer
		{
			get
			{
				return this._Nop190_PollAnswer.Entity;
			}
			set
			{
				Nop190_PollAnswer previousValue = this._Nop190_PollAnswer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_PollAnswer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_PollAnswer.Entity = null;
						previousValue.Nop190_PollVotingRecords.Remove(this);
					}
					this._Nop190_PollAnswer.Entity = value;
					if ((value != null))
					{
						value.Nop190_PollVotingRecords.Add(this);
						this._PollAnswerID = value.PollAnswerID;
					}
					else
					{
						this._PollAnswerID = default(int);
					}
					this.SendPropertyChanged("Nop190_PollAnswer");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Pricelist")]
	public partial class Nop190_Pricelist : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _PricelistID;
		
		private int _ExportModeID;
		
		private int _ExportTypeID;
		
		private int _AffiliateID;
		
		private string _DisplayName;
		
		private string _ShortName;
		
		private string _PricelistGuid;
		
		private int _CacheTime;
		
		private string _FormatLocalization;
		
		private string _Description;
		
		private string _AdminNotes;
		
		private string _Header;
		
		private string _Body;
		
		private string _Footer;
		
		private int _PriceAdjustmentTypeID;
		
		private decimal _PriceAdjustment;
		
		private bool _OverrideIndivAdjustment;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_ProductVariant_Pricelist_Mapping> _Nop190_ProductVariant_Pricelist_Mappings;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnPricelistIDChanging(int value);
    partial void OnPricelistIDChanged();
    partial void OnExportModeIDChanging(int value);
    partial void OnExportModeIDChanged();
    partial void OnExportTypeIDChanging(int value);
    partial void OnExportTypeIDChanged();
    partial void OnAffiliateIDChanging(int value);
    partial void OnAffiliateIDChanged();
    partial void OnDisplayNameChanging(string value);
    partial void OnDisplayNameChanged();
    partial void OnShortNameChanging(string value);
    partial void OnShortNameChanged();
    partial void OnPricelistGuidChanging(string value);
    partial void OnPricelistGuidChanged();
    partial void OnCacheTimeChanging(int value);
    partial void OnCacheTimeChanged();
    partial void OnFormatLocalizationChanging(string value);
    partial void OnFormatLocalizationChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnAdminNotesChanging(string value);
    partial void OnAdminNotesChanged();
    partial void OnHeaderChanging(string value);
    partial void OnHeaderChanged();
    partial void OnBodyChanging(string value);
    partial void OnBodyChanged();
    partial void OnFooterChanging(string value);
    partial void OnFooterChanged();
    partial void OnPriceAdjustmentTypeIDChanging(int value);
    partial void OnPriceAdjustmentTypeIDChanged();
    partial void OnPriceAdjustmentChanging(decimal value);
    partial void OnPriceAdjustmentChanged();
    partial void OnOverrideIndivAdjustmentChanging(bool value);
    partial void OnOverrideIndivAdjustmentChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_Pricelist()
		{
			this._Nop190_ProductVariant_Pricelist_Mappings = new EntitySet<Nop190_ProductVariant_Pricelist_Mapping>(new Action<Nop190_ProductVariant_Pricelist_Mapping>(this.attach_Nop190_ProductVariant_Pricelist_Mappings), new Action<Nop190_ProductVariant_Pricelist_Mapping>(this.detach_Nop190_ProductVariant_Pricelist_Mappings));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PricelistID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int PricelistID
		{
			get
			{
				return this._PricelistID;
			}
			set
			{
				if ((this._PricelistID != value))
				{
					this.OnPricelistIDChanging(value);
					this.SendPropertyChanging();
					this._PricelistID = value;
					this.SendPropertyChanged("PricelistID");
					this.OnPricelistIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ExportModeID", DbType="Int NOT NULL")]
		public int ExportModeID
		{
			get
			{
				return this._ExportModeID;
			}
			set
			{
				if ((this._ExportModeID != value))
				{
					this.OnExportModeIDChanging(value);
					this.SendPropertyChanging();
					this._ExportModeID = value;
					this.SendPropertyChanged("ExportModeID");
					this.OnExportModeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ExportTypeID", DbType="Int NOT NULL")]
		public int ExportTypeID
		{
			get
			{
				return this._ExportTypeID;
			}
			set
			{
				if ((this._ExportTypeID != value))
				{
					this.OnExportTypeIDChanging(value);
					this.SendPropertyChanging();
					this._ExportTypeID = value;
					this.SendPropertyChanged("ExportTypeID");
					this.OnExportTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AffiliateID", DbType="Int NOT NULL")]
		public int AffiliateID
		{
			get
			{
				return this._AffiliateID;
			}
			set
			{
				if ((this._AffiliateID != value))
				{
					this.OnAffiliateIDChanging(value);
					this.SendPropertyChanging();
					this._AffiliateID = value;
					this.SendPropertyChanged("AffiliateID");
					this.OnAffiliateIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string DisplayName
		{
			get
			{
				return this._DisplayName;
			}
			set
			{
				if ((this._DisplayName != value))
				{
					this.OnDisplayNameChanging(value);
					this.SendPropertyChanging();
					this._DisplayName = value;
					this.SendPropertyChanged("DisplayName");
					this.OnDisplayNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShortName", DbType="NVarChar(20) NOT NULL", CanBeNull=false)]
		public string ShortName
		{
			get
			{
				return this._ShortName;
			}
			set
			{
				if ((this._ShortName != value))
				{
					this.OnShortNameChanging(value);
					this.SendPropertyChanging();
					this._ShortName = value;
					this.SendPropertyChanged("ShortName");
					this.OnShortNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PricelistGuid", DbType="NVarChar(40) NOT NULL", CanBeNull=false)]
		public string PricelistGuid
		{
			get
			{
				return this._PricelistGuid;
			}
			set
			{
				if ((this._PricelistGuid != value))
				{
					this.OnPricelistGuidChanging(value);
					this.SendPropertyChanging();
					this._PricelistGuid = value;
					this.SendPropertyChanged("PricelistGuid");
					this.OnPricelistGuidChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CacheTime", DbType="Int NOT NULL")]
		public int CacheTime
		{
			get
			{
				return this._CacheTime;
			}
			set
			{
				if ((this._CacheTime != value))
				{
					this.OnCacheTimeChanging(value);
					this.SendPropertyChanging();
					this._CacheTime = value;
					this.SendPropertyChanged("CacheTime");
					this.OnCacheTimeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FormatLocalization", DbType="NVarChar(5) NOT NULL", CanBeNull=false)]
		public string FormatLocalization
		{
			get
			{
				return this._FormatLocalization;
			}
			set
			{
				if ((this._FormatLocalization != value))
				{
					this.OnFormatLocalizationChanging(value);
					this.SendPropertyChanging();
					this._FormatLocalization = value;
					this.SendPropertyChanged("FormatLocalization");
					this.OnFormatLocalizationChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AdminNotes", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string AdminNotes
		{
			get
			{
				return this._AdminNotes;
			}
			set
			{
				if ((this._AdminNotes != value))
				{
					this.OnAdminNotesChanging(value);
					this.SendPropertyChanging();
					this._AdminNotes = value;
					this.SendPropertyChanged("AdminNotes");
					this.OnAdminNotesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Header", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string Header
		{
			get
			{
				return this._Header;
			}
			set
			{
				if ((this._Header != value))
				{
					this.OnHeaderChanging(value);
					this.SendPropertyChanging();
					this._Header = value;
					this.SendPropertyChanged("Header");
					this.OnHeaderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Body", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string Body
		{
			get
			{
				return this._Body;
			}
			set
			{
				if ((this._Body != value))
				{
					this.OnBodyChanging(value);
					this.SendPropertyChanging();
					this._Body = value;
					this.SendPropertyChanged("Body");
					this.OnBodyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Footer", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string Footer
		{
			get
			{
				return this._Footer;
			}
			set
			{
				if ((this._Footer != value))
				{
					this.OnFooterChanging(value);
					this.SendPropertyChanging();
					this._Footer = value;
					this.SendPropertyChanged("Footer");
					this.OnFooterChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceAdjustmentTypeID", DbType="Int NOT NULL")]
		public int PriceAdjustmentTypeID
		{
			get
			{
				return this._PriceAdjustmentTypeID;
			}
			set
			{
				if ((this._PriceAdjustmentTypeID != value))
				{
					this.OnPriceAdjustmentTypeIDChanging(value);
					this.SendPropertyChanging();
					this._PriceAdjustmentTypeID = value;
					this.SendPropertyChanged("PriceAdjustmentTypeID");
					this.OnPriceAdjustmentTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceAdjustment", DbType="Money NOT NULL")]
		public decimal PriceAdjustment
		{
			get
			{
				return this._PriceAdjustment;
			}
			set
			{
				if ((this._PriceAdjustment != value))
				{
					this.OnPriceAdjustmentChanging(value);
					this.SendPropertyChanging();
					this._PriceAdjustment = value;
					this.SendPropertyChanged("PriceAdjustment");
					this.OnPriceAdjustmentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OverrideIndivAdjustment", DbType="Bit NOT NULL")]
		public bool OverrideIndivAdjustment
		{
			get
			{
				return this._OverrideIndivAdjustment;
			}
			set
			{
				if ((this._OverrideIndivAdjustment != value))
				{
					this.OnOverrideIndivAdjustmentChanging(value);
					this.SendPropertyChanging();
					this._OverrideIndivAdjustment = value;
					this.SendPropertyChanged("OverrideIndivAdjustment");
					this.OnOverrideIndivAdjustmentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Pricelist_Nop190_ProductVariant_Pricelist_Mapping", Storage="_Nop190_ProductVariant_Pricelist_Mappings", ThisKey="PricelistID", OtherKey="PricelistID")]
		public EntitySet<Nop190_ProductVariant_Pricelist_Mapping> Nop190_ProductVariant_Pricelist_Mappings
		{
			get
			{
				return this._Nop190_ProductVariant_Pricelist_Mappings;
			}
			set
			{
				this._Nop190_ProductVariant_Pricelist_Mappings.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ProductVariant_Pricelist_Mappings(Nop190_ProductVariant_Pricelist_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Pricelist = this;
		}
		
		private void detach_Nop190_ProductVariant_Pricelist_Mappings(Nop190_ProductVariant_Pricelist_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Pricelist = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Product")]
	public partial class Nop190_Product : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductId;
		
		private string _Name;
		
		private string _ShortDescription;
		
		private string _FullDescription;
		
		private string _AdminComment;
		
		private int _TemplateID;
		
		private bool _ShowOnHomePage;
		
		private string _MetaKeywords;
		
		private string _MetaDescription;
		
		private string _MetaTitle;
		
		private string _SEName;
		
		private bool _AllowCustomerReviews;
		
		private bool _AllowCustomerRatings;
		
		private int _RatingSum;
		
		private int _TotalRatingVotes;
		
		private bool _Published;
		
		private bool _Deleted;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_CrossSellProduct> _Nop190_CrossSellProducts;
		
		private EntitySet<Nop190_Product_Category_Mapping> _Nop190_Product_Category_Mappings;
		
		private EntitySet<Nop190_Product_Manufacturer_Mapping> _Nop190_Product_Manufacturer_Mappings;
		
		private EntitySet<Nop190_Product_SpecificationAttribute_Mapping> _Nop190_Product_SpecificationAttribute_Mappings;
		
		private EntitySet<Nop190_ProductLocalized> _Nop190_ProductLocalizeds;
		
		private EntitySet<Nop190_ProductPicture> _Nop190_ProductPictures;
		
		private EntitySet<Nop190_ProductRating> _Nop190_ProductRatings;
		
		private EntitySet<Nop190_ProductReview> _Nop190_ProductReviews;
		
		private EntitySet<Nop190_ProductTag_Product_Mapping> _Nop190_ProductTag_Product_Mappings;
		
		private EntitySet<Nop190_ProductVariant> _Nop190_ProductVariants;
		
		private EntitySet<Nop190_RelatedProduct> _Nop190_RelatedProducts;
		
		private EntityRef<Nop190_ProductTemplate> _Nop190_ProductTemplate;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductIdChanging(int value);
    partial void OnProductIdChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnShortDescriptionChanging(string value);
    partial void OnShortDescriptionChanged();
    partial void OnFullDescriptionChanging(string value);
    partial void OnFullDescriptionChanged();
    partial void OnAdminCommentChanging(string value);
    partial void OnAdminCommentChanged();
    partial void OnTemplateIDChanging(int value);
    partial void OnTemplateIDChanged();
    partial void OnShowOnHomePageChanging(bool value);
    partial void OnShowOnHomePageChanged();
    partial void OnMetaKeywordsChanging(string value);
    partial void OnMetaKeywordsChanged();
    partial void OnMetaDescriptionChanging(string value);
    partial void OnMetaDescriptionChanged();
    partial void OnMetaTitleChanging(string value);
    partial void OnMetaTitleChanged();
    partial void OnSENameChanging(string value);
    partial void OnSENameChanged();
    partial void OnAllowCustomerReviewsChanging(bool value);
    partial void OnAllowCustomerReviewsChanged();
    partial void OnAllowCustomerRatingsChanging(bool value);
    partial void OnAllowCustomerRatingsChanged();
    partial void OnRatingSumChanging(int value);
    partial void OnRatingSumChanged();
    partial void OnTotalRatingVotesChanging(int value);
    partial void OnTotalRatingVotesChanged();
    partial void OnPublishedChanging(bool value);
    partial void OnPublishedChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_Product()
		{
			this._Nop190_CrossSellProducts = new EntitySet<Nop190_CrossSellProduct>(new Action<Nop190_CrossSellProduct>(this.attach_Nop190_CrossSellProducts), new Action<Nop190_CrossSellProduct>(this.detach_Nop190_CrossSellProducts));
			this._Nop190_Product_Category_Mappings = new EntitySet<Nop190_Product_Category_Mapping>(new Action<Nop190_Product_Category_Mapping>(this.attach_Nop190_Product_Category_Mappings), new Action<Nop190_Product_Category_Mapping>(this.detach_Nop190_Product_Category_Mappings));
			this._Nop190_Product_Manufacturer_Mappings = new EntitySet<Nop190_Product_Manufacturer_Mapping>(new Action<Nop190_Product_Manufacturer_Mapping>(this.attach_Nop190_Product_Manufacturer_Mappings), new Action<Nop190_Product_Manufacturer_Mapping>(this.detach_Nop190_Product_Manufacturer_Mappings));
			this._Nop190_Product_SpecificationAttribute_Mappings = new EntitySet<Nop190_Product_SpecificationAttribute_Mapping>(new Action<Nop190_Product_SpecificationAttribute_Mapping>(this.attach_Nop190_Product_SpecificationAttribute_Mappings), new Action<Nop190_Product_SpecificationAttribute_Mapping>(this.detach_Nop190_Product_SpecificationAttribute_Mappings));
			this._Nop190_ProductLocalizeds = new EntitySet<Nop190_ProductLocalized>(new Action<Nop190_ProductLocalized>(this.attach_Nop190_ProductLocalizeds), new Action<Nop190_ProductLocalized>(this.detach_Nop190_ProductLocalizeds));
			this._Nop190_ProductPictures = new EntitySet<Nop190_ProductPicture>(new Action<Nop190_ProductPicture>(this.attach_Nop190_ProductPictures), new Action<Nop190_ProductPicture>(this.detach_Nop190_ProductPictures));
			this._Nop190_ProductRatings = new EntitySet<Nop190_ProductRating>(new Action<Nop190_ProductRating>(this.attach_Nop190_ProductRatings), new Action<Nop190_ProductRating>(this.detach_Nop190_ProductRatings));
			this._Nop190_ProductReviews = new EntitySet<Nop190_ProductReview>(new Action<Nop190_ProductReview>(this.attach_Nop190_ProductReviews), new Action<Nop190_ProductReview>(this.detach_Nop190_ProductReviews));
			this._Nop190_ProductTag_Product_Mappings = new EntitySet<Nop190_ProductTag_Product_Mapping>(new Action<Nop190_ProductTag_Product_Mapping>(this.attach_Nop190_ProductTag_Product_Mappings), new Action<Nop190_ProductTag_Product_Mapping>(this.detach_Nop190_ProductTag_Product_Mappings));
			this._Nop190_ProductVariants = new EntitySet<Nop190_ProductVariant>(new Action<Nop190_ProductVariant>(this.attach_Nop190_ProductVariants), new Action<Nop190_ProductVariant>(this.detach_Nop190_ProductVariants));
			this._Nop190_RelatedProducts = new EntitySet<Nop190_RelatedProduct>(new Action<Nop190_RelatedProduct>(this.attach_Nop190_RelatedProducts), new Action<Nop190_RelatedProduct>(this.detach_Nop190_RelatedProducts));
			this._Nop190_ProductTemplate = default(EntityRef<Nop190_ProductTemplate>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductId
		{
			get
			{
				return this._ProductId;
			}
			set
			{
				if ((this._ProductId != value))
				{
					this.OnProductIdChanging(value);
					this.SendPropertyChanging();
					this._ProductId = value;
					this.SendPropertyChanged("ProductId");
					this.OnProductIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShortDescription", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string ShortDescription
		{
			get
			{
				return this._ShortDescription;
			}
			set
			{
				if ((this._ShortDescription != value))
				{
					this.OnShortDescriptionChanging(value);
					this.SendPropertyChanging();
					this._ShortDescription = value;
					this.SendPropertyChanged("ShortDescription");
					this.OnShortDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FullDescription", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string FullDescription
		{
			get
			{
				return this._FullDescription;
			}
			set
			{
				if ((this._FullDescription != value))
				{
					this.OnFullDescriptionChanging(value);
					this.SendPropertyChanging();
					this._FullDescription = value;
					this.SendPropertyChanged("FullDescription");
					this.OnFullDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AdminComment", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string AdminComment
		{
			get
			{
				return this._AdminComment;
			}
			set
			{
				if ((this._AdminComment != value))
				{
					this.OnAdminCommentChanging(value);
					this.SendPropertyChanging();
					this._AdminComment = value;
					this.SendPropertyChanged("AdminComment");
					this.OnAdminCommentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TemplateID", DbType="Int NOT NULL")]
		public int TemplateID
		{
			get
			{
				return this._TemplateID;
			}
			set
			{
				if ((this._TemplateID != value))
				{
					if (this._Nop190_ProductTemplate.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnTemplateIDChanging(value);
					this.SendPropertyChanging();
					this._TemplateID = value;
					this.SendPropertyChanged("TemplateID");
					this.OnTemplateIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShowOnHomePage", DbType="Bit NOT NULL")]
		public bool ShowOnHomePage
		{
			get
			{
				return this._ShowOnHomePage;
			}
			set
			{
				if ((this._ShowOnHomePage != value))
				{
					this.OnShowOnHomePageChanging(value);
					this.SendPropertyChanging();
					this._ShowOnHomePage = value;
					this.SendPropertyChanged("ShowOnHomePage");
					this.OnShowOnHomePageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaKeywords", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaKeywords
		{
			get
			{
				return this._MetaKeywords;
			}
			set
			{
				if ((this._MetaKeywords != value))
				{
					this.OnMetaKeywordsChanging(value);
					this.SendPropertyChanging();
					this._MetaKeywords = value;
					this.SendPropertyChanged("MetaKeywords");
					this.OnMetaKeywordsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaDescription", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string MetaDescription
		{
			get
			{
				return this._MetaDescription;
			}
			set
			{
				if ((this._MetaDescription != value))
				{
					this.OnMetaDescriptionChanging(value);
					this.SendPropertyChanging();
					this._MetaDescription = value;
					this.SendPropertyChanged("MetaDescription");
					this.OnMetaDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaTitle", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaTitle
		{
			get
			{
				return this._MetaTitle;
			}
			set
			{
				if ((this._MetaTitle != value))
				{
					this.OnMetaTitleChanging(value);
					this.SendPropertyChanging();
					this._MetaTitle = value;
					this.SendPropertyChanged("MetaTitle");
					this.OnMetaTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SEName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SEName
		{
			get
			{
				return this._SEName;
			}
			set
			{
				if ((this._SEName != value))
				{
					this.OnSENameChanging(value);
					this.SendPropertyChanging();
					this._SEName = value;
					this.SendPropertyChanged("SEName");
					this.OnSENameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AllowCustomerReviews", DbType="Bit NOT NULL")]
		public bool AllowCustomerReviews
		{
			get
			{
				return this._AllowCustomerReviews;
			}
			set
			{
				if ((this._AllowCustomerReviews != value))
				{
					this.OnAllowCustomerReviewsChanging(value);
					this.SendPropertyChanging();
					this._AllowCustomerReviews = value;
					this.SendPropertyChanged("AllowCustomerReviews");
					this.OnAllowCustomerReviewsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AllowCustomerRatings", DbType="Bit NOT NULL")]
		public bool AllowCustomerRatings
		{
			get
			{
				return this._AllowCustomerRatings;
			}
			set
			{
				if ((this._AllowCustomerRatings != value))
				{
					this.OnAllowCustomerRatingsChanging(value);
					this.SendPropertyChanging();
					this._AllowCustomerRatings = value;
					this.SendPropertyChanged("AllowCustomerRatings");
					this.OnAllowCustomerRatingsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RatingSum", DbType="Int NOT NULL")]
		public int RatingSum
		{
			get
			{
				return this._RatingSum;
			}
			set
			{
				if ((this._RatingSum != value))
				{
					this.OnRatingSumChanging(value);
					this.SendPropertyChanging();
					this._RatingSum = value;
					this.SendPropertyChanged("RatingSum");
					this.OnRatingSumChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalRatingVotes", DbType="Int NOT NULL")]
		public int TotalRatingVotes
		{
			get
			{
				return this._TotalRatingVotes;
			}
			set
			{
				if ((this._TotalRatingVotes != value))
				{
					this.OnTotalRatingVotesChanging(value);
					this.SendPropertyChanging();
					this._TotalRatingVotes = value;
					this.SendPropertyChanged("TotalRatingVotes");
					this.OnTotalRatingVotesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Published", DbType="Bit NOT NULL")]
		public bool Published
		{
			get
			{
				return this._Published;
			}
			set
			{
				if ((this._Published != value))
				{
					this.OnPublishedChanging(value);
					this.SendPropertyChanging();
					this._Published = value;
					this.SendPropertyChanged("Published");
					this.OnPublishedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_CrossSellProduct", Storage="_Nop190_CrossSellProducts", ThisKey="ProductId", OtherKey="ProductId1")]
		public EntitySet<Nop190_CrossSellProduct> Nop190_CrossSellProducts
		{
			get
			{
				return this._Nop190_CrossSellProducts;
			}
			set
			{
				this._Nop190_CrossSellProducts.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_Product_Category_Mapping", Storage="_Nop190_Product_Category_Mappings", ThisKey="ProductId", OtherKey="ProductID")]
		public EntitySet<Nop190_Product_Category_Mapping> Nop190_Product_Category_Mappings
		{
			get
			{
				return this._Nop190_Product_Category_Mappings;
			}
			set
			{
				this._Nop190_Product_Category_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_Product_Manufacturer_Mapping", Storage="_Nop190_Product_Manufacturer_Mappings", ThisKey="ProductId", OtherKey="ProductID")]
		public EntitySet<Nop190_Product_Manufacturer_Mapping> Nop190_Product_Manufacturer_Mappings
		{
			get
			{
				return this._Nop190_Product_Manufacturer_Mappings;
			}
			set
			{
				this._Nop190_Product_Manufacturer_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_Product_SpecificationAttribute_Mapping", Storage="_Nop190_Product_SpecificationAttribute_Mappings", ThisKey="ProductId", OtherKey="ProductID")]
		public EntitySet<Nop190_Product_SpecificationAttribute_Mapping> Nop190_Product_SpecificationAttribute_Mappings
		{
			get
			{
				return this._Nop190_Product_SpecificationAttribute_Mappings;
			}
			set
			{
				this._Nop190_Product_SpecificationAttribute_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductLocalized", Storage="_Nop190_ProductLocalizeds", ThisKey="ProductId", OtherKey="ProductID")]
		public EntitySet<Nop190_ProductLocalized> Nop190_ProductLocalizeds
		{
			get
			{
				return this._Nop190_ProductLocalizeds;
			}
			set
			{
				this._Nop190_ProductLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductPicture", Storage="_Nop190_ProductPictures", ThisKey="ProductId", OtherKey="ProductID")]
		public EntitySet<Nop190_ProductPicture> Nop190_ProductPictures
		{
			get
			{
				return this._Nop190_ProductPictures;
			}
			set
			{
				this._Nop190_ProductPictures.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductRating", Storage="_Nop190_ProductRatings", ThisKey="ProductId", OtherKey="ProductID")]
		public EntitySet<Nop190_ProductRating> Nop190_ProductRatings
		{
			get
			{
				return this._Nop190_ProductRatings;
			}
			set
			{
				this._Nop190_ProductRatings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductReview", Storage="_Nop190_ProductReviews", ThisKey="ProductId", OtherKey="ProductID")]
		public EntitySet<Nop190_ProductReview> Nop190_ProductReviews
		{
			get
			{
				return this._Nop190_ProductReviews;
			}
			set
			{
				this._Nop190_ProductReviews.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductTag_Product_Mapping", Storage="_Nop190_ProductTag_Product_Mappings", ThisKey="ProductId", OtherKey="ProductID")]
		public EntitySet<Nop190_ProductTag_Product_Mapping> Nop190_ProductTag_Product_Mappings
		{
			get
			{
				return this._Nop190_ProductTag_Product_Mappings;
			}
			set
			{
				this._Nop190_ProductTag_Product_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductVariant", Storage="_Nop190_ProductVariants", ThisKey="ProductId", OtherKey="ProductID")]
		public EntitySet<Nop190_ProductVariant> Nop190_ProductVariants
		{
			get
			{
				return this._Nop190_ProductVariants;
			}
			set
			{
				this._Nop190_ProductVariants.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_RelatedProduct", Storage="_Nop190_RelatedProducts", ThisKey="ProductId", OtherKey="ProductID1")]
		public EntitySet<Nop190_RelatedProduct> Nop190_RelatedProducts
		{
			get
			{
				return this._Nop190_RelatedProducts;
			}
			set
			{
				this._Nop190_RelatedProducts.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductTemplate_Nop190_Product", Storage="_Nop190_ProductTemplate", ThisKey="TemplateID", OtherKey="ProductTemplateId", IsForeignKey=true)]
		public Nop190_ProductTemplate Nop190_ProductTemplate
		{
			get
			{
				return this._Nop190_ProductTemplate.Entity;
			}
			set
			{
				Nop190_ProductTemplate previousValue = this._Nop190_ProductTemplate.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductTemplate.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductTemplate.Entity = null;
						previousValue.Nop190_Products.Remove(this);
					}
					this._Nop190_ProductTemplate.Entity = value;
					if ((value != null))
					{
						value.Nop190_Products.Add(this);
						this._TemplateID = value.ProductTemplateId;
					}
					else
					{
						this._TemplateID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductTemplate");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_CrossSellProducts(Nop190_CrossSellProduct entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = this;
		}
		
		private void detach_Nop190_CrossSellProducts(Nop190_CrossSellProduct entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = null;
		}
		
		private void attach_Nop190_Product_Category_Mappings(Nop190_Product_Category_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = this;
		}
		
		private void detach_Nop190_Product_Category_Mappings(Nop190_Product_Category_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = null;
		}
		
		private void attach_Nop190_Product_Manufacturer_Mappings(Nop190_Product_Manufacturer_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = this;
		}
		
		private void detach_Nop190_Product_Manufacturer_Mappings(Nop190_Product_Manufacturer_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = null;
		}
		
		private void attach_Nop190_Product_SpecificationAttribute_Mappings(Nop190_Product_SpecificationAttribute_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = this;
		}
		
		private void detach_Nop190_Product_SpecificationAttribute_Mappings(Nop190_Product_SpecificationAttribute_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = null;
		}
		
		private void attach_Nop190_ProductLocalizeds(Nop190_ProductLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = this;
		}
		
		private void detach_Nop190_ProductLocalizeds(Nop190_ProductLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = null;
		}
		
		private void attach_Nop190_ProductPictures(Nop190_ProductPicture entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = this;
		}
		
		private void detach_Nop190_ProductPictures(Nop190_ProductPicture entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = null;
		}
		
		private void attach_Nop190_ProductRatings(Nop190_ProductRating entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = this;
		}
		
		private void detach_Nop190_ProductRatings(Nop190_ProductRating entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = null;
		}
		
		private void attach_Nop190_ProductReviews(Nop190_ProductReview entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = this;
		}
		
		private void detach_Nop190_ProductReviews(Nop190_ProductReview entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = null;
		}
		
		private void attach_Nop190_ProductTag_Product_Mappings(Nop190_ProductTag_Product_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = this;
		}
		
		private void detach_Nop190_ProductTag_Product_Mappings(Nop190_ProductTag_Product_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = null;
		}
		
		private void attach_Nop190_ProductVariants(Nop190_ProductVariant entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = this;
		}
		
		private void detach_Nop190_ProductVariants(Nop190_ProductVariant entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = null;
		}
		
		private void attach_Nop190_RelatedProducts(Nop190_RelatedProduct entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = this;
		}
		
		private void detach_Nop190_RelatedProducts(Nop190_RelatedProduct entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Product = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Product_Category_Mapping")]
	public partial class Nop190_Product_Category_Mapping : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductCategoryID;
		
		private int _ProductID;
		
		private int _CategoryID;
		
		private bool _IsFeaturedProduct;
		
		private int _DisplayOrder;
		
		private EntityRef<Nop190_Category> _Nop190_Category;
		
		private EntityRef<Nop190_Product> _Nop190_Product;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductCategoryIDChanging(int value);
    partial void OnProductCategoryIDChanged();
    partial void OnProductIDChanging(int value);
    partial void OnProductIDChanged();
    partial void OnCategoryIDChanging(int value);
    partial void OnCategoryIDChanged();
    partial void OnIsFeaturedProductChanging(bool value);
    partial void OnIsFeaturedProductChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_Product_Category_Mapping()
		{
			this._Nop190_Category = default(EntityRef<Nop190_Category>);
			this._Nop190_Product = default(EntityRef<Nop190_Product>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductCategoryID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductCategoryID
		{
			get
			{
				return this._ProductCategoryID;
			}
			set
			{
				if ((this._ProductCategoryID != value))
				{
					this.OnProductCategoryIDChanging(value);
					this.SendPropertyChanging();
					this._ProductCategoryID = value;
					this.SendPropertyChanged("ProductCategoryID");
					this.OnProductCategoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", DbType="Int NOT NULL")]
		public int ProductID
		{
			get
			{
				return this._ProductID;
			}
			set
			{
				if ((this._ProductID != value))
				{
					if (this._Nop190_Product.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductIDChanging(value);
					this.SendPropertyChanging();
					this._ProductID = value;
					this.SendPropertyChanged("ProductID");
					this.OnProductIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CategoryID", DbType="Int NOT NULL")]
		public int CategoryID
		{
			get
			{
				return this._CategoryID;
			}
			set
			{
				if ((this._CategoryID != value))
				{
					if (this._Nop190_Category.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCategoryIDChanging(value);
					this.SendPropertyChanging();
					this._CategoryID = value;
					this.SendPropertyChanged("CategoryID");
					this.OnCategoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsFeaturedProduct", DbType="Bit NOT NULL")]
		public bool IsFeaturedProduct
		{
			get
			{
				return this._IsFeaturedProduct;
			}
			set
			{
				if ((this._IsFeaturedProduct != value))
				{
					this.OnIsFeaturedProductChanging(value);
					this.SendPropertyChanging();
					this._IsFeaturedProduct = value;
					this.SendPropertyChanged("IsFeaturedProduct");
					this.OnIsFeaturedProductChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Category_Nop190_Product_Category_Mapping", Storage="_Nop190_Category", ThisKey="CategoryID", OtherKey="CategoryID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Category Nop190_Category
		{
			get
			{
				return this._Nop190_Category.Entity;
			}
			set
			{
				Nop190_Category previousValue = this._Nop190_Category.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Category.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Category.Entity = null;
						previousValue.Nop190_Product_Category_Mappings.Remove(this);
					}
					this._Nop190_Category.Entity = value;
					if ((value != null))
					{
						value.Nop190_Product_Category_Mappings.Add(this);
						this._CategoryID = value.CategoryID;
					}
					else
					{
						this._CategoryID = default(int);
					}
					this.SendPropertyChanged("Nop190_Category");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_Product_Category_Mapping", Storage="_Nop190_Product", ThisKey="ProductID", OtherKey="ProductId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Product Nop190_Product
		{
			get
			{
				return this._Nop190_Product.Entity;
			}
			set
			{
				Nop190_Product previousValue = this._Nop190_Product.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Product.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Product.Entity = null;
						previousValue.Nop190_Product_Category_Mappings.Remove(this);
					}
					this._Nop190_Product.Entity = value;
					if ((value != null))
					{
						value.Nop190_Product_Category_Mappings.Add(this);
						this._ProductID = value.ProductId;
					}
					else
					{
						this._ProductID = default(int);
					}
					this.SendPropertyChanged("Nop190_Product");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Product_Manufacturer_Mapping")]
	public partial class Nop190_Product_Manufacturer_Mapping : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductManufacturerID;
		
		private int _ProductID;
		
		private int _ManufacturerID;
		
		private bool _IsFeaturedProduct;
		
		private int _DisplayOrder;
		
		private EntityRef<Nop190_Manufacturer> _Nop190_Manufacturer;
		
		private EntityRef<Nop190_Product> _Nop190_Product;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductManufacturerIDChanging(int value);
    partial void OnProductManufacturerIDChanged();
    partial void OnProductIDChanging(int value);
    partial void OnProductIDChanged();
    partial void OnManufacturerIDChanging(int value);
    partial void OnManufacturerIDChanged();
    partial void OnIsFeaturedProductChanging(bool value);
    partial void OnIsFeaturedProductChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_Product_Manufacturer_Mapping()
		{
			this._Nop190_Manufacturer = default(EntityRef<Nop190_Manufacturer>);
			this._Nop190_Product = default(EntityRef<Nop190_Product>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductManufacturerID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductManufacturerID
		{
			get
			{
				return this._ProductManufacturerID;
			}
			set
			{
				if ((this._ProductManufacturerID != value))
				{
					this.OnProductManufacturerIDChanging(value);
					this.SendPropertyChanging();
					this._ProductManufacturerID = value;
					this.SendPropertyChanged("ProductManufacturerID");
					this.OnProductManufacturerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", DbType="Int NOT NULL")]
		public int ProductID
		{
			get
			{
				return this._ProductID;
			}
			set
			{
				if ((this._ProductID != value))
				{
					if (this._Nop190_Product.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductIDChanging(value);
					this.SendPropertyChanging();
					this._ProductID = value;
					this.SendPropertyChanged("ProductID");
					this.OnProductIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ManufacturerID", DbType="Int NOT NULL")]
		public int ManufacturerID
		{
			get
			{
				return this._ManufacturerID;
			}
			set
			{
				if ((this._ManufacturerID != value))
				{
					if (this._Nop190_Manufacturer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnManufacturerIDChanging(value);
					this.SendPropertyChanging();
					this._ManufacturerID = value;
					this.SendPropertyChanged("ManufacturerID");
					this.OnManufacturerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsFeaturedProduct", DbType="Bit NOT NULL")]
		public bool IsFeaturedProduct
		{
			get
			{
				return this._IsFeaturedProduct;
			}
			set
			{
				if ((this._IsFeaturedProduct != value))
				{
					this.OnIsFeaturedProductChanging(value);
					this.SendPropertyChanging();
					this._IsFeaturedProduct = value;
					this.SendPropertyChanged("IsFeaturedProduct");
					this.OnIsFeaturedProductChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Manufacturer_Nop190_Product_Manufacturer_Mapping", Storage="_Nop190_Manufacturer", ThisKey="ManufacturerID", OtherKey="ManufacturerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Manufacturer Nop190_Manufacturer
		{
			get
			{
				return this._Nop190_Manufacturer.Entity;
			}
			set
			{
				Nop190_Manufacturer previousValue = this._Nop190_Manufacturer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Manufacturer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Manufacturer.Entity = null;
						previousValue.Nop190_Product_Manufacturer_Mappings.Remove(this);
					}
					this._Nop190_Manufacturer.Entity = value;
					if ((value != null))
					{
						value.Nop190_Product_Manufacturer_Mappings.Add(this);
						this._ManufacturerID = value.ManufacturerID;
					}
					else
					{
						this._ManufacturerID = default(int);
					}
					this.SendPropertyChanged("Nop190_Manufacturer");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_Product_Manufacturer_Mapping", Storage="_Nop190_Product", ThisKey="ProductID", OtherKey="ProductId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Product Nop190_Product
		{
			get
			{
				return this._Nop190_Product.Entity;
			}
			set
			{
				Nop190_Product previousValue = this._Nop190_Product.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Product.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Product.Entity = null;
						previousValue.Nop190_Product_Manufacturer_Mappings.Remove(this);
					}
					this._Nop190_Product.Entity = value;
					if ((value != null))
					{
						value.Nop190_Product_Manufacturer_Mappings.Add(this);
						this._ProductID = value.ProductId;
					}
					else
					{
						this._ProductID = default(int);
					}
					this.SendPropertyChanged("Nop190_Product");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Product_SpecificationAttribute_Mapping")]
	public partial class Nop190_Product_SpecificationAttribute_Mapping : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductSpecificationAttributeID;
		
		private int _ProductID;
		
		private int _SpecificationAttributeOptionID;
		
		private bool _AllowFiltering;
		
		private bool _ShowOnProductPage;
		
		private int _DisplayOrder;
		
		private EntityRef<Nop190_Product> _Nop190_Product;
		
		private EntityRef<Nop190_SpecificationAttributeOption> _Nop190_SpecificationAttributeOption;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductSpecificationAttributeIDChanging(int value);
    partial void OnProductSpecificationAttributeIDChanged();
    partial void OnProductIDChanging(int value);
    partial void OnProductIDChanged();
    partial void OnSpecificationAttributeOptionIDChanging(int value);
    partial void OnSpecificationAttributeOptionIDChanged();
    partial void OnAllowFilteringChanging(bool value);
    partial void OnAllowFilteringChanged();
    partial void OnShowOnProductPageChanging(bool value);
    partial void OnShowOnProductPageChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_Product_SpecificationAttribute_Mapping()
		{
			this._Nop190_Product = default(EntityRef<Nop190_Product>);
			this._Nop190_SpecificationAttributeOption = default(EntityRef<Nop190_SpecificationAttributeOption>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductSpecificationAttributeID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductSpecificationAttributeID
		{
			get
			{
				return this._ProductSpecificationAttributeID;
			}
			set
			{
				if ((this._ProductSpecificationAttributeID != value))
				{
					this.OnProductSpecificationAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._ProductSpecificationAttributeID = value;
					this.SendPropertyChanged("ProductSpecificationAttributeID");
					this.OnProductSpecificationAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", DbType="Int NOT NULL")]
		public int ProductID
		{
			get
			{
				return this._ProductID;
			}
			set
			{
				if ((this._ProductID != value))
				{
					if (this._Nop190_Product.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductIDChanging(value);
					this.SendPropertyChanging();
					this._ProductID = value;
					this.SendPropertyChanged("ProductID");
					this.OnProductIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecificationAttributeOptionID", DbType="Int NOT NULL")]
		public int SpecificationAttributeOptionID
		{
			get
			{
				return this._SpecificationAttributeOptionID;
			}
			set
			{
				if ((this._SpecificationAttributeOptionID != value))
				{
					if (this._Nop190_SpecificationAttributeOption.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnSpecificationAttributeOptionIDChanging(value);
					this.SendPropertyChanging();
					this._SpecificationAttributeOptionID = value;
					this.SendPropertyChanged("SpecificationAttributeOptionID");
					this.OnSpecificationAttributeOptionIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AllowFiltering", DbType="Bit NOT NULL")]
		public bool AllowFiltering
		{
			get
			{
				return this._AllowFiltering;
			}
			set
			{
				if ((this._AllowFiltering != value))
				{
					this.OnAllowFilteringChanging(value);
					this.SendPropertyChanging();
					this._AllowFiltering = value;
					this.SendPropertyChanged("AllowFiltering");
					this.OnAllowFilteringChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShowOnProductPage", DbType="Bit NOT NULL")]
		public bool ShowOnProductPage
		{
			get
			{
				return this._ShowOnProductPage;
			}
			set
			{
				if ((this._ShowOnProductPage != value))
				{
					this.OnShowOnProductPageChanging(value);
					this.SendPropertyChanging();
					this._ShowOnProductPage = value;
					this.SendPropertyChanged("ShowOnProductPage");
					this.OnShowOnProductPageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_Product_SpecificationAttribute_Mapping", Storage="_Nop190_Product", ThisKey="ProductID", OtherKey="ProductId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Product Nop190_Product
		{
			get
			{
				return this._Nop190_Product.Entity;
			}
			set
			{
				Nop190_Product previousValue = this._Nop190_Product.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Product.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Product.Entity = null;
						previousValue.Nop190_Product_SpecificationAttribute_Mappings.Remove(this);
					}
					this._Nop190_Product.Entity = value;
					if ((value != null))
					{
						value.Nop190_Product_SpecificationAttribute_Mappings.Add(this);
						this._ProductID = value.ProductId;
					}
					else
					{
						this._ProductID = default(int);
					}
					this.SendPropertyChanged("Nop190_Product");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_SpecificationAttributeOption_Nop190_Product_SpecificationAttribute_Mapping" +
			"", Storage="_Nop190_SpecificationAttributeOption", ThisKey="SpecificationAttributeOptionID", OtherKey="SpecificationAttributeOptionID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_SpecificationAttributeOption Nop190_SpecificationAttributeOption
		{
			get
			{
				return this._Nop190_SpecificationAttributeOption.Entity;
			}
			set
			{
				Nop190_SpecificationAttributeOption previousValue = this._Nop190_SpecificationAttributeOption.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_SpecificationAttributeOption.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_SpecificationAttributeOption.Entity = null;
						previousValue.Nop190_Product_SpecificationAttribute_Mappings.Remove(this);
					}
					this._Nop190_SpecificationAttributeOption.Entity = value;
					if ((value != null))
					{
						value.Nop190_Product_SpecificationAttribute_Mappings.Add(this);
						this._SpecificationAttributeOptionID = value.SpecificationAttributeOptionID;
					}
					else
					{
						this._SpecificationAttributeOptionID = default(int);
					}
					this.SendPropertyChanged("Nop190_SpecificationAttributeOption");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductAttribute")]
	public partial class Nop190_ProductAttribute : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductAttributeID;
		
		private string _Name;
		
		private string _Description;
		
		private EntitySet<Nop190_ProductAttributeLocalized> _Nop190_ProductAttributeLocalizeds;
		
		private EntitySet<Nop190_ProductVariant_ProductAttribute_Mapping> _Nop190_ProductVariant_ProductAttribute_Mappings;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductAttributeIDChanging(int value);
    partial void OnProductAttributeIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    #endregion
		
		public Nop190_ProductAttribute()
		{
			this._Nop190_ProductAttributeLocalizeds = new EntitySet<Nop190_ProductAttributeLocalized>(new Action<Nop190_ProductAttributeLocalized>(this.attach_Nop190_ProductAttributeLocalizeds), new Action<Nop190_ProductAttributeLocalized>(this.detach_Nop190_ProductAttributeLocalizeds));
			this._Nop190_ProductVariant_ProductAttribute_Mappings = new EntitySet<Nop190_ProductVariant_ProductAttribute_Mapping>(new Action<Nop190_ProductVariant_ProductAttribute_Mapping>(this.attach_Nop190_ProductVariant_ProductAttribute_Mappings), new Action<Nop190_ProductVariant_ProductAttribute_Mapping>(this.detach_Nop190_ProductVariant_ProductAttribute_Mappings));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductAttributeID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductAttributeID
		{
			get
			{
				return this._ProductAttributeID;
			}
			set
			{
				if ((this._ProductAttributeID != value))
				{
					this.OnProductAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._ProductAttributeID = value;
					this.SendPropertyChanged("ProductAttributeID");
					this.OnProductAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductAttribute_Nop190_ProductAttributeLocalized", Storage="_Nop190_ProductAttributeLocalizeds", ThisKey="ProductAttributeID", OtherKey="ProductAttributeID")]
		public EntitySet<Nop190_ProductAttributeLocalized> Nop190_ProductAttributeLocalizeds
		{
			get
			{
				return this._Nop190_ProductAttributeLocalizeds;
			}
			set
			{
				this._Nop190_ProductAttributeLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductAttribute_Nop190_ProductVariant_ProductAttribute_Mapping", Storage="_Nop190_ProductVariant_ProductAttribute_Mappings", ThisKey="ProductAttributeID", OtherKey="ProductAttributeID")]
		public EntitySet<Nop190_ProductVariant_ProductAttribute_Mapping> Nop190_ProductVariant_ProductAttribute_Mappings
		{
			get
			{
				return this._Nop190_ProductVariant_ProductAttribute_Mappings;
			}
			set
			{
				this._Nop190_ProductVariant_ProductAttribute_Mappings.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ProductAttributeLocalizeds(Nop190_ProductAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductAttribute = this;
		}
		
		private void detach_Nop190_ProductAttributeLocalizeds(Nop190_ProductAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductAttribute = null;
		}
		
		private void attach_Nop190_ProductVariant_ProductAttribute_Mappings(Nop190_ProductVariant_ProductAttribute_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductAttribute = this;
		}
		
		private void detach_Nop190_ProductVariant_ProductAttribute_Mappings(Nop190_ProductVariant_ProductAttribute_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductAttribute = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductAttributeLocalized")]
	public partial class Nop190_ProductAttributeLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductAttributeLocalizedID;
		
		private int _ProductAttributeID;
		
		private int _LanguageID;
		
		private string _Name;
		
		private string _Description;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
		private EntityRef<Nop190_ProductAttribute> _Nop190_ProductAttribute;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductAttributeLocalizedIDChanging(int value);
    partial void OnProductAttributeLocalizedIDChanged();
    partial void OnProductAttributeIDChanging(int value);
    partial void OnProductAttributeIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    #endregion
		
		public Nop190_ProductAttributeLocalized()
		{
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			this._Nop190_ProductAttribute = default(EntityRef<Nop190_ProductAttribute>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductAttributeLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductAttributeLocalizedID
		{
			get
			{
				return this._ProductAttributeLocalizedID;
			}
			set
			{
				if ((this._ProductAttributeLocalizedID != value))
				{
					this.OnProductAttributeLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._ProductAttributeLocalizedID = value;
					this.SendPropertyChanged("ProductAttributeLocalizedID");
					this.OnProductAttributeLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductAttributeID", DbType="Int NOT NULL")]
		public int ProductAttributeID
		{
			get
			{
				return this._ProductAttributeID;
			}
			set
			{
				if ((this._ProductAttributeID != value))
				{
					if (this._Nop190_ProductAttribute.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._ProductAttributeID = value;
					this.SendPropertyChanged("ProductAttributeID");
					this.OnProductAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_ProductAttributeLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_ProductAttributeLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductAttributeLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductAttribute_Nop190_ProductAttributeLocalized", Storage="_Nop190_ProductAttribute", ThisKey="ProductAttributeID", OtherKey="ProductAttributeID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductAttribute Nop190_ProductAttribute
		{
			get
			{
				return this._Nop190_ProductAttribute.Entity;
			}
			set
			{
				Nop190_ProductAttribute previousValue = this._Nop190_ProductAttribute.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductAttribute.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductAttribute.Entity = null;
						previousValue.Nop190_ProductAttributeLocalizeds.Remove(this);
					}
					this._Nop190_ProductAttribute.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductAttributeLocalizeds.Add(this);
						this._ProductAttributeID = value.ProductAttributeID;
					}
					else
					{
						this._ProductAttributeID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductAttribute");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductLocalized")]
	public partial class Nop190_ProductLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductLocalizedID;
		
		private int _ProductID;
		
		private int _LanguageID;
		
		private string _Name;
		
		private string _ShortDescription;
		
		private string _FullDescription;
		
		private string _MetaKeywords;
		
		private string _MetaDescription;
		
		private string _MetaTitle;
		
		private string _SEName;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
		private EntityRef<Nop190_Product> _Nop190_Product;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductLocalizedIDChanging(int value);
    partial void OnProductLocalizedIDChanged();
    partial void OnProductIDChanging(int value);
    partial void OnProductIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnShortDescriptionChanging(string value);
    partial void OnShortDescriptionChanged();
    partial void OnFullDescriptionChanging(string value);
    partial void OnFullDescriptionChanged();
    partial void OnMetaKeywordsChanging(string value);
    partial void OnMetaKeywordsChanged();
    partial void OnMetaDescriptionChanging(string value);
    partial void OnMetaDescriptionChanged();
    partial void OnMetaTitleChanging(string value);
    partial void OnMetaTitleChanged();
    partial void OnSENameChanging(string value);
    partial void OnSENameChanged();
    #endregion
		
		public Nop190_ProductLocalized()
		{
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			this._Nop190_Product = default(EntityRef<Nop190_Product>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductLocalizedID
		{
			get
			{
				return this._ProductLocalizedID;
			}
			set
			{
				if ((this._ProductLocalizedID != value))
				{
					this.OnProductLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._ProductLocalizedID = value;
					this.SendPropertyChanged("ProductLocalizedID");
					this.OnProductLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", DbType="Int NOT NULL")]
		public int ProductID
		{
			get
			{
				return this._ProductID;
			}
			set
			{
				if ((this._ProductID != value))
				{
					if (this._Nop190_Product.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductIDChanging(value);
					this.SendPropertyChanging();
					this._ProductID = value;
					this.SendPropertyChanged("ProductID");
					this.OnProductIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShortDescription", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string ShortDescription
		{
			get
			{
				return this._ShortDescription;
			}
			set
			{
				if ((this._ShortDescription != value))
				{
					this.OnShortDescriptionChanging(value);
					this.SendPropertyChanging();
					this._ShortDescription = value;
					this.SendPropertyChanged("ShortDescription");
					this.OnShortDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FullDescription", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string FullDescription
		{
			get
			{
				return this._FullDescription;
			}
			set
			{
				if ((this._FullDescription != value))
				{
					this.OnFullDescriptionChanging(value);
					this.SendPropertyChanging();
					this._FullDescription = value;
					this.SendPropertyChanged("FullDescription");
					this.OnFullDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaKeywords", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaKeywords
		{
			get
			{
				return this._MetaKeywords;
			}
			set
			{
				if ((this._MetaKeywords != value))
				{
					this.OnMetaKeywordsChanging(value);
					this.SendPropertyChanging();
					this._MetaKeywords = value;
					this.SendPropertyChanged("MetaKeywords");
					this.OnMetaKeywordsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaDescription", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string MetaDescription
		{
			get
			{
				return this._MetaDescription;
			}
			set
			{
				if ((this._MetaDescription != value))
				{
					this.OnMetaDescriptionChanging(value);
					this.SendPropertyChanging();
					this._MetaDescription = value;
					this.SendPropertyChanged("MetaDescription");
					this.OnMetaDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaTitle", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaTitle
		{
			get
			{
				return this._MetaTitle;
			}
			set
			{
				if ((this._MetaTitle != value))
				{
					this.OnMetaTitleChanging(value);
					this.SendPropertyChanging();
					this._MetaTitle = value;
					this.SendPropertyChanged("MetaTitle");
					this.OnMetaTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SEName", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SEName
		{
			get
			{
				return this._SEName;
			}
			set
			{
				if ((this._SEName != value))
				{
					this.OnSENameChanging(value);
					this.SendPropertyChanging();
					this._SEName = value;
					this.SendPropertyChanged("SEName");
					this.OnSENameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_ProductLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_ProductLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductLocalized", Storage="_Nop190_Product", ThisKey="ProductID", OtherKey="ProductId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Product Nop190_Product
		{
			get
			{
				return this._Nop190_Product.Entity;
			}
			set
			{
				Nop190_Product previousValue = this._Nop190_Product.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Product.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Product.Entity = null;
						previousValue.Nop190_ProductLocalizeds.Remove(this);
					}
					this._Nop190_Product.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductLocalizeds.Add(this);
						this._ProductID = value.ProductId;
					}
					else
					{
						this._ProductID = default(int);
					}
					this.SendPropertyChanged("Nop190_Product");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductPicture")]
	public partial class Nop190_ProductPicture : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductPictureID;
		
		private int _ProductID;
		
		private int _PictureID;
		
		private int _DisplayOrder;
		
		private EntityRef<Nop190_Picture> _Nop190_Picture;
		
		private EntityRef<Nop190_Product> _Nop190_Product;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductPictureIDChanging(int value);
    partial void OnProductPictureIDChanged();
    partial void OnProductIDChanging(int value);
    partial void OnProductIDChanged();
    partial void OnPictureIDChanging(int value);
    partial void OnPictureIDChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_ProductPicture()
		{
			this._Nop190_Picture = default(EntityRef<Nop190_Picture>);
			this._Nop190_Product = default(EntityRef<Nop190_Product>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductPictureID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductPictureID
		{
			get
			{
				return this._ProductPictureID;
			}
			set
			{
				if ((this._ProductPictureID != value))
				{
					this.OnProductPictureIDChanging(value);
					this.SendPropertyChanging();
					this._ProductPictureID = value;
					this.SendPropertyChanged("ProductPictureID");
					this.OnProductPictureIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", DbType="Int NOT NULL")]
		public int ProductID
		{
			get
			{
				return this._ProductID;
			}
			set
			{
				if ((this._ProductID != value))
				{
					if (this._Nop190_Product.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductIDChanging(value);
					this.SendPropertyChanging();
					this._ProductID = value;
					this.SendPropertyChanged("ProductID");
					this.OnProductIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PictureID", DbType="Int NOT NULL")]
		public int PictureID
		{
			get
			{
				return this._PictureID;
			}
			set
			{
				if ((this._PictureID != value))
				{
					if (this._Nop190_Picture.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnPictureIDChanging(value);
					this.SendPropertyChanging();
					this._PictureID = value;
					this.SendPropertyChanged("PictureID");
					this.OnPictureIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Picture_Nop190_ProductPicture", Storage="_Nop190_Picture", ThisKey="PictureID", OtherKey="PictureID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Picture Nop190_Picture
		{
			get
			{
				return this._Nop190_Picture.Entity;
			}
			set
			{
				Nop190_Picture previousValue = this._Nop190_Picture.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Picture.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Picture.Entity = null;
						previousValue.Nop190_ProductPictures.Remove(this);
					}
					this._Nop190_Picture.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductPictures.Add(this);
						this._PictureID = value.PictureID;
					}
					else
					{
						this._PictureID = default(int);
					}
					this.SendPropertyChanged("Nop190_Picture");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductPicture", Storage="_Nop190_Product", ThisKey="ProductID", OtherKey="ProductId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Product Nop190_Product
		{
			get
			{
				return this._Nop190_Product.Entity;
			}
			set
			{
				Nop190_Product previousValue = this._Nop190_Product.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Product.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Product.Entity = null;
						previousValue.Nop190_ProductPictures.Remove(this);
					}
					this._Nop190_Product.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductPictures.Add(this);
						this._ProductID = value.ProductId;
					}
					else
					{
						this._ProductID = default(int);
					}
					this.SendPropertyChanged("Nop190_Product");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductRating")]
	public partial class Nop190_ProductRating : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductRatingID;
		
		private int _ProductID;
		
		private int _CustomerID;
		
		private int _Rating;
		
		private System.DateTime _RatedOn;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
		private EntityRef<Nop190_Product> _Nop190_Product;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductRatingIDChanging(int value);
    partial void OnProductRatingIDChanged();
    partial void OnProductIDChanging(int value);
    partial void OnProductIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnRatingChanging(int value);
    partial void OnRatingChanged();
    partial void OnRatedOnChanging(System.DateTime value);
    partial void OnRatedOnChanged();
    #endregion
		
		public Nop190_ProductRating()
		{
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			this._Nop190_Product = default(EntityRef<Nop190_Product>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductRatingID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductRatingID
		{
			get
			{
				return this._ProductRatingID;
			}
			set
			{
				if ((this._ProductRatingID != value))
				{
					this.OnProductRatingIDChanging(value);
					this.SendPropertyChanging();
					this._ProductRatingID = value;
					this.SendPropertyChanged("ProductRatingID");
					this.OnProductRatingIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", DbType="Int NOT NULL")]
		public int ProductID
		{
			get
			{
				return this._ProductID;
			}
			set
			{
				if ((this._ProductID != value))
				{
					if (this._Nop190_Product.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductIDChanging(value);
					this.SendPropertyChanging();
					this._ProductID = value;
					this.SendPropertyChanged("ProductID");
					this.OnProductIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Rating", DbType="Int NOT NULL")]
		public int Rating
		{
			get
			{
				return this._Rating;
			}
			set
			{
				if ((this._Rating != value))
				{
					this.OnRatingChanging(value);
					this.SendPropertyChanging();
					this._Rating = value;
					this.SendPropertyChanged("Rating");
					this.OnRatingChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime RatedOn
		{
			get
			{
				return this._RatedOn;
			}
			set
			{
				if ((this._RatedOn != value))
				{
					this.OnRatedOnChanging(value);
					this.SendPropertyChanging();
					this._RatedOn = value;
					this.SendPropertyChanged("RatedOn");
					this.OnRatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_ProductRating", Storage="_Nop190_Customer", ThisKey="CustomerID", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_ProductRatings.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductRatings.Add(this);
						this._CustomerID = value.CustomerID;
					}
					else
					{
						this._CustomerID = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductRating", Storage="_Nop190_Product", ThisKey="ProductID", OtherKey="ProductId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Product Nop190_Product
		{
			get
			{
				return this._Nop190_Product.Entity;
			}
			set
			{
				Nop190_Product previousValue = this._Nop190_Product.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Product.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Product.Entity = null;
						previousValue.Nop190_ProductRatings.Remove(this);
					}
					this._Nop190_Product.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductRatings.Add(this);
						this._ProductID = value.ProductId;
					}
					else
					{
						this._ProductID = default(int);
					}
					this.SendPropertyChanged("Nop190_Product");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductReview")]
	public partial class Nop190_ProductReview : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductReviewID;
		
		private int _ProductID;
		
		private int _CustomerID;
		
		private string _IPAddress;
		
		private string _Title;
		
		private string _ReviewText;
		
		private int _Rating;
		
		private int _HelpfulYesTotal;
		
		private int _HelpfulNoTotal;
		
		private bool _IsApproved;
		
		private System.DateTime _CreatedOn;
		
		private EntitySet<Nop190_ProductReviewHelpfulness> _Nop190_ProductReviewHelpfulnesses;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
		private EntityRef<Nop190_Product> _Nop190_Product;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductReviewIDChanging(int value);
    partial void OnProductReviewIDChanged();
    partial void OnProductIDChanging(int value);
    partial void OnProductIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnIPAddressChanging(string value);
    partial void OnIPAddressChanged();
    partial void OnTitleChanging(string value);
    partial void OnTitleChanged();
    partial void OnReviewTextChanging(string value);
    partial void OnReviewTextChanged();
    partial void OnRatingChanging(int value);
    partial void OnRatingChanged();
    partial void OnHelpfulYesTotalChanging(int value);
    partial void OnHelpfulYesTotalChanged();
    partial void OnHelpfulNoTotalChanging(int value);
    partial void OnHelpfulNoTotalChanged();
    partial void OnIsApprovedChanging(bool value);
    partial void OnIsApprovedChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_ProductReview()
		{
			this._Nop190_ProductReviewHelpfulnesses = new EntitySet<Nop190_ProductReviewHelpfulness>(new Action<Nop190_ProductReviewHelpfulness>(this.attach_Nop190_ProductReviewHelpfulnesses), new Action<Nop190_ProductReviewHelpfulness>(this.detach_Nop190_ProductReviewHelpfulnesses));
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			this._Nop190_Product = default(EntityRef<Nop190_Product>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductReviewID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductReviewID
		{
			get
			{
				return this._ProductReviewID;
			}
			set
			{
				if ((this._ProductReviewID != value))
				{
					this.OnProductReviewIDChanging(value);
					this.SendPropertyChanging();
					this._ProductReviewID = value;
					this.SendPropertyChanged("ProductReviewID");
					this.OnProductReviewIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", DbType="Int NOT NULL")]
		public int ProductID
		{
			get
			{
				return this._ProductID;
			}
			set
			{
				if ((this._ProductID != value))
				{
					if (this._Nop190_Product.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductIDChanging(value);
					this.SendPropertyChanging();
					this._ProductID = value;
					this.SendPropertyChanged("ProductID");
					this.OnProductIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IPAddress", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string IPAddress
		{
			get
			{
				return this._IPAddress;
			}
			set
			{
				if ((this._IPAddress != value))
				{
					this.OnIPAddressChanging(value);
					this.SendPropertyChanging();
					this._IPAddress = value;
					this.SendPropertyChanged("IPAddress");
					this.OnIPAddressChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Title", DbType="NVarChar(1000) NOT NULL", CanBeNull=false)]
		public string Title
		{
			get
			{
				return this._Title;
			}
			set
			{
				if ((this._Title != value))
				{
					this.OnTitleChanging(value);
					this.SendPropertyChanging();
					this._Title = value;
					this.SendPropertyChanged("Title");
					this.OnTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ReviewText", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string ReviewText
		{
			get
			{
				return this._ReviewText;
			}
			set
			{
				if ((this._ReviewText != value))
				{
					this.OnReviewTextChanging(value);
					this.SendPropertyChanging();
					this._ReviewText = value;
					this.SendPropertyChanged("ReviewText");
					this.OnReviewTextChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Rating", DbType="Int NOT NULL")]
		public int Rating
		{
			get
			{
				return this._Rating;
			}
			set
			{
				if ((this._Rating != value))
				{
					this.OnRatingChanging(value);
					this.SendPropertyChanging();
					this._Rating = value;
					this.SendPropertyChanged("Rating");
					this.OnRatingChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HelpfulYesTotal", DbType="Int NOT NULL")]
		public int HelpfulYesTotal
		{
			get
			{
				return this._HelpfulYesTotal;
			}
			set
			{
				if ((this._HelpfulYesTotal != value))
				{
					this.OnHelpfulYesTotalChanging(value);
					this.SendPropertyChanging();
					this._HelpfulYesTotal = value;
					this.SendPropertyChanged("HelpfulYesTotal");
					this.OnHelpfulYesTotalChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HelpfulNoTotal", DbType="Int NOT NULL")]
		public int HelpfulNoTotal
		{
			get
			{
				return this._HelpfulNoTotal;
			}
			set
			{
				if ((this._HelpfulNoTotal != value))
				{
					this.OnHelpfulNoTotalChanging(value);
					this.SendPropertyChanging();
					this._HelpfulNoTotal = value;
					this.SendPropertyChanged("HelpfulNoTotal");
					this.OnHelpfulNoTotalChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsApproved", DbType="Bit NOT NULL")]
		public bool IsApproved
		{
			get
			{
				return this._IsApproved;
			}
			set
			{
				if ((this._IsApproved != value))
				{
					this.OnIsApprovedChanging(value);
					this.SendPropertyChanging();
					this._IsApproved = value;
					this.SendPropertyChanged("IsApproved");
					this.OnIsApprovedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductReview_Nop190_ProductReviewHelpfulness", Storage="_Nop190_ProductReviewHelpfulnesses", ThisKey="ProductReviewID", OtherKey="ProductReviewID")]
		public EntitySet<Nop190_ProductReviewHelpfulness> Nop190_ProductReviewHelpfulnesses
		{
			get
			{
				return this._Nop190_ProductReviewHelpfulnesses;
			}
			set
			{
				this._Nop190_ProductReviewHelpfulnesses.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_ProductReview", Storage="_Nop190_Customer", ThisKey="CustomerID", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_ProductReviews.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductReviews.Add(this);
						this._CustomerID = value.CustomerID;
					}
					else
					{
						this._CustomerID = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductReview", Storage="_Nop190_Product", ThisKey="ProductID", OtherKey="ProductId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Product Nop190_Product
		{
			get
			{
				return this._Nop190_Product.Entity;
			}
			set
			{
				Nop190_Product previousValue = this._Nop190_Product.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Product.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Product.Entity = null;
						previousValue.Nop190_ProductReviews.Remove(this);
					}
					this._Nop190_Product.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductReviews.Add(this);
						this._ProductID = value.ProductId;
					}
					else
					{
						this._ProductID = default(int);
					}
					this.SendPropertyChanged("Nop190_Product");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ProductReviewHelpfulnesses(Nop190_ProductReviewHelpfulness entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductReview = this;
		}
		
		private void detach_Nop190_ProductReviewHelpfulnesses(Nop190_ProductReviewHelpfulness entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductReview = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductReviewHelpfulness")]
	public partial class Nop190_ProductReviewHelpfulness : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductReviewHelpfulnessID;
		
		private int _ProductReviewID;
		
		private int _CustomerID;
		
		private bool _WasHelpful;
		
		private EntityRef<Nop190_ProductReview> _Nop190_ProductReview;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductReviewHelpfulnessIDChanging(int value);
    partial void OnProductReviewHelpfulnessIDChanged();
    partial void OnProductReviewIDChanging(int value);
    partial void OnProductReviewIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnWasHelpfulChanging(bool value);
    partial void OnWasHelpfulChanged();
    #endregion
		
		public Nop190_ProductReviewHelpfulness()
		{
			this._Nop190_ProductReview = default(EntityRef<Nop190_ProductReview>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductReviewHelpfulnessID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductReviewHelpfulnessID
		{
			get
			{
				return this._ProductReviewHelpfulnessID;
			}
			set
			{
				if ((this._ProductReviewHelpfulnessID != value))
				{
					this.OnProductReviewHelpfulnessIDChanging(value);
					this.SendPropertyChanging();
					this._ProductReviewHelpfulnessID = value;
					this.SendPropertyChanged("ProductReviewHelpfulnessID");
					this.OnProductReviewHelpfulnessIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductReviewID", DbType="Int NOT NULL")]
		public int ProductReviewID
		{
			get
			{
				return this._ProductReviewID;
			}
			set
			{
				if ((this._ProductReviewID != value))
				{
					if (this._Nop190_ProductReview.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductReviewIDChanging(value);
					this.SendPropertyChanging();
					this._ProductReviewID = value;
					this.SendPropertyChanged("ProductReviewID");
					this.OnProductReviewIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WasHelpful", DbType="Bit NOT NULL")]
		public bool WasHelpful
		{
			get
			{
				return this._WasHelpful;
			}
			set
			{
				if ((this._WasHelpful != value))
				{
					this.OnWasHelpfulChanging(value);
					this.SendPropertyChanging();
					this._WasHelpful = value;
					this.SendPropertyChanged("WasHelpful");
					this.OnWasHelpfulChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductReview_Nop190_ProductReviewHelpfulness", Storage="_Nop190_ProductReview", ThisKey="ProductReviewID", OtherKey="ProductReviewID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductReview Nop190_ProductReview
		{
			get
			{
				return this._Nop190_ProductReview.Entity;
			}
			set
			{
				Nop190_ProductReview previousValue = this._Nop190_ProductReview.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductReview.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductReview.Entity = null;
						previousValue.Nop190_ProductReviewHelpfulnesses.Remove(this);
					}
					this._Nop190_ProductReview.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductReviewHelpfulnesses.Add(this);
						this._ProductReviewID = value.ProductReviewID;
					}
					else
					{
						this._ProductReviewID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductReview");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductTag")]
	public partial class Nop190_ProductTag : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductTagID;
		
		private string _Name;
		
		private int _ProductCount;
		
		private EntitySet<Nop190_ProductTag_Product_Mapping> _Nop190_ProductTag_Product_Mappings;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductTagIDChanging(int value);
    partial void OnProductTagIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnProductCountChanging(int value);
    partial void OnProductCountChanged();
    #endregion
		
		public Nop190_ProductTag()
		{
			this._Nop190_ProductTag_Product_Mappings = new EntitySet<Nop190_ProductTag_Product_Mapping>(new Action<Nop190_ProductTag_Product_Mapping>(this.attach_Nop190_ProductTag_Product_Mappings), new Action<Nop190_ProductTag_Product_Mapping>(this.detach_Nop190_ProductTag_Product_Mappings));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductTagID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductTagID
		{
			get
			{
				return this._ProductTagID;
			}
			set
			{
				if ((this._ProductTagID != value))
				{
					this.OnProductTagIDChanging(value);
					this.SendPropertyChanging();
					this._ProductTagID = value;
					this.SendPropertyChanged("ProductTagID");
					this.OnProductTagIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductCount", DbType="Int NOT NULL")]
		public int ProductCount
		{
			get
			{
				return this._ProductCount;
			}
			set
			{
				if ((this._ProductCount != value))
				{
					this.OnProductCountChanging(value);
					this.SendPropertyChanging();
					this._ProductCount = value;
					this.SendPropertyChanged("ProductCount");
					this.OnProductCountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductTag_Nop190_ProductTag_Product_Mapping", Storage="_Nop190_ProductTag_Product_Mappings", ThisKey="ProductTagID", OtherKey="ProductTagID")]
		public EntitySet<Nop190_ProductTag_Product_Mapping> Nop190_ProductTag_Product_Mappings
		{
			get
			{
				return this._Nop190_ProductTag_Product_Mappings;
			}
			set
			{
				this._Nop190_ProductTag_Product_Mappings.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ProductTag_Product_Mappings(Nop190_ProductTag_Product_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductTag = this;
		}
		
		private void detach_Nop190_ProductTag_Product_Mappings(Nop190_ProductTag_Product_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductTag = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductTag_Product_Mapping")]
	public partial class Nop190_ProductTag_Product_Mapping : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductTagID;
		
		private int _ProductID;
		
		private EntityRef<Nop190_Product> _Nop190_Product;
		
		private EntityRef<Nop190_ProductTag> _Nop190_ProductTag;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductTagIDChanging(int value);
    partial void OnProductTagIDChanged();
    partial void OnProductIDChanging(int value);
    partial void OnProductIDChanged();
    #endregion
		
		public Nop190_ProductTag_Product_Mapping()
		{
			this._Nop190_Product = default(EntityRef<Nop190_Product>);
			this._Nop190_ProductTag = default(EntityRef<Nop190_ProductTag>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductTagID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int ProductTagID
		{
			get
			{
				return this._ProductTagID;
			}
			set
			{
				if ((this._ProductTagID != value))
				{
					if (this._Nop190_ProductTag.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductTagIDChanging(value);
					this.SendPropertyChanging();
					this._ProductTagID = value;
					this.SendPropertyChanged("ProductTagID");
					this.OnProductTagIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int ProductID
		{
			get
			{
				return this._ProductID;
			}
			set
			{
				if ((this._ProductID != value))
				{
					if (this._Nop190_Product.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductIDChanging(value);
					this.SendPropertyChanging();
					this._ProductID = value;
					this.SendPropertyChanged("ProductID");
					this.OnProductIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductTag_Product_Mapping", Storage="_Nop190_Product", ThisKey="ProductID", OtherKey="ProductId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Product Nop190_Product
		{
			get
			{
				return this._Nop190_Product.Entity;
			}
			set
			{
				Nop190_Product previousValue = this._Nop190_Product.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Product.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Product.Entity = null;
						previousValue.Nop190_ProductTag_Product_Mappings.Remove(this);
					}
					this._Nop190_Product.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductTag_Product_Mappings.Add(this);
						this._ProductID = value.ProductId;
					}
					else
					{
						this._ProductID = default(int);
					}
					this.SendPropertyChanged("Nop190_Product");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductTag_Nop190_ProductTag_Product_Mapping", Storage="_Nop190_ProductTag", ThisKey="ProductTagID", OtherKey="ProductTagID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductTag Nop190_ProductTag
		{
			get
			{
				return this._Nop190_ProductTag.Entity;
			}
			set
			{
				Nop190_ProductTag previousValue = this._Nop190_ProductTag.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductTag.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductTag.Entity = null;
						previousValue.Nop190_ProductTag_Product_Mappings.Remove(this);
					}
					this._Nop190_ProductTag.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductTag_Product_Mappings.Add(this);
						this._ProductTagID = value.ProductTagID;
					}
					else
					{
						this._ProductTagID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductTag");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductTemplate")]
	public partial class Nop190_ProductTemplate : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductTemplateId;
		
		private string _Name;
		
		private string _TemplatePath;
		
		private int _DisplayOrder;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_Product> _Nop190_Products;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductTemplateIdChanging(int value);
    partial void OnProductTemplateIdChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnTemplatePathChanging(string value);
    partial void OnTemplatePathChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_ProductTemplate()
		{
			this._Nop190_Products = new EntitySet<Nop190_Product>(new Action<Nop190_Product>(this.attach_Nop190_Products), new Action<Nop190_Product>(this.detach_Nop190_Products));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductTemplateId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductTemplateId
		{
			get
			{
				return this._ProductTemplateId;
			}
			set
			{
				if ((this._ProductTemplateId != value))
				{
					this.OnProductTemplateIdChanging(value);
					this.SendPropertyChanging();
					this._ProductTemplateId = value;
					this.SendPropertyChanged("ProductTemplateId");
					this.OnProductTemplateIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TemplatePath", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string TemplatePath
		{
			get
			{
				return this._TemplatePath;
			}
			set
			{
				if ((this._TemplatePath != value))
				{
					this.OnTemplatePathChanging(value);
					this.SendPropertyChanging();
					this._TemplatePath = value;
					this.SendPropertyChanged("TemplatePath");
					this.OnTemplatePathChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductTemplate_Nop190_Product", Storage="_Nop190_Products", ThisKey="ProductTemplateId", OtherKey="TemplateID")]
		public EntitySet<Nop190_Product> Nop190_Products
		{
			get
			{
				return this._Nop190_Products;
			}
			set
			{
				this._Nop190_Products.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_Products(Nop190_Product entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductTemplate = this;
		}
		
		private void detach_Nop190_Products(Nop190_Product entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductTemplate = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductVariant")]
	public partial class Nop190_ProductVariant : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductVariantId;
		
		private int _ProductID;
		
		private string _Name;
		
		private string _SKU;
		
		private string _Description;
		
		private string _AdminComment;
		
		private string _ManufacturerPartNumber;
		
		private bool _IsGiftCard;
		
		private int _GiftCardType;
		
		private bool _IsDownload;
		
		private int _DownloadID;
		
		private bool _UnlimitedDownloads;
		
		private int _MaxNumberOfDownloads;
		
		private System.Nullable<int> _DownloadExpirationDays;
		
		private int _DownloadActivationType;
		
		private bool _HasSampleDownload;
		
		private int _SampleDownloadID;
		
		private bool _HasUserAgreement;
		
		private string _UserAgreementText;
		
		private bool _IsRecurring;
		
		private int _CycleLength;
		
		private int _CyclePeriod;
		
		private int _TotalCycles;
		
		private bool _IsShipEnabled;
		
		private bool _IsFreeShipping;
		
		private decimal _AdditionalShippingCharge;
		
		private bool _IsTaxExempt;
		
		private int _TaxCategoryID;
		
		private int _ManageInventory;
		
		private int _StockQuantity;
		
		private bool _DisplayStockAvailability;
		
		private bool _DisplayStockQuantity;
		
		private int _MinStockQuantity;
		
		private int _LowStockActivityID;
		
		private int _NotifyAdminForQuantityBelow;
		
		private int _Backorders;
		
		private int _OrderMinimumQuantity;
		
		private int _OrderMaximumQuantity;
		
		private int _WarehouseID;
		
		private bool _DisableBuyButton;
		
		private bool _CallForPrice;
		
		private decimal _Price;
		
		private decimal _OldPrice;
		
		private decimal _ProductCost;
		
		private bool _CustomerEntersPrice;
		
		private decimal _MinimumCustomerEnteredPrice;
		
		private decimal _MaximumCustomerEnteredPrice;
		
		private decimal _Weight;
		
		private decimal _Length;
		
		private decimal _Width;
		
		private decimal _Height;
		
		private int _PictureID;
		
		private System.Nullable<System.DateTime> _AvailableStartDateTime;
		
		private System.Nullable<System.DateTime> _AvailableEndDateTime;
		
		private bool _Published;
		
		private bool _Deleted;
		
		private int _DisplayOrder;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_CustomerRole_ProductPrice> _Nop190_CustomerRole_ProductPrices;
		
		private EntitySet<Nop190_DiscountRestriction> _Nop190_DiscountRestrictions;
		
		private EntitySet<Nop190_OrderProductVariant> _Nop190_OrderProductVariants;
		
		private EntitySet<Nop190_ProductVariant_Discount_Mapping> _Nop190_ProductVariant_Discount_Mappings;
		
		private EntitySet<Nop190_ProductVariant_Pricelist_Mapping> _Nop190_ProductVariant_Pricelist_Mappings;
		
		private EntitySet<Nop190_ProductVariant_ProductAttribute_Mapping> _Nop190_ProductVariant_ProductAttribute_Mappings;
		
		private EntitySet<Nop190_ProductVariantAttributeCombination> _Nop190_ProductVariantAttributeCombinations;
		
		private EntitySet<Nop190_ProductVariantLocalized> _Nop190_ProductVariantLocalizeds;
		
		private EntitySet<Nop190_ShoppingCartItem> _Nop190_ShoppingCartItems;
		
		private EntitySet<Nop190_TierPrice> _Nop190_TierPrices;
		
		private EntityRef<Nop190_Product> _Nop190_Product;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductVariantIdChanging(int value);
    partial void OnProductVariantIdChanged();
    partial void OnProductIDChanging(int value);
    partial void OnProductIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnSKUChanging(string value);
    partial void OnSKUChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnAdminCommentChanging(string value);
    partial void OnAdminCommentChanged();
    partial void OnManufacturerPartNumberChanging(string value);
    partial void OnManufacturerPartNumberChanged();
    partial void OnIsGiftCardChanging(bool value);
    partial void OnIsGiftCardChanged();
    partial void OnGiftCardTypeChanging(int value);
    partial void OnGiftCardTypeChanged();
    partial void OnIsDownloadChanging(bool value);
    partial void OnIsDownloadChanged();
    partial void OnDownloadIDChanging(int value);
    partial void OnDownloadIDChanged();
    partial void OnUnlimitedDownloadsChanging(bool value);
    partial void OnUnlimitedDownloadsChanged();
    partial void OnMaxNumberOfDownloadsChanging(int value);
    partial void OnMaxNumberOfDownloadsChanged();
    partial void OnDownloadExpirationDaysChanging(System.Nullable<int> value);
    partial void OnDownloadExpirationDaysChanged();
    partial void OnDownloadActivationTypeChanging(int value);
    partial void OnDownloadActivationTypeChanged();
    partial void OnHasSampleDownloadChanging(bool value);
    partial void OnHasSampleDownloadChanged();
    partial void OnSampleDownloadIDChanging(int value);
    partial void OnSampleDownloadIDChanged();
    partial void OnHasUserAgreementChanging(bool value);
    partial void OnHasUserAgreementChanged();
    partial void OnUserAgreementTextChanging(string value);
    partial void OnUserAgreementTextChanged();
    partial void OnIsRecurringChanging(bool value);
    partial void OnIsRecurringChanged();
    partial void OnCycleLengthChanging(int value);
    partial void OnCycleLengthChanged();
    partial void OnCyclePeriodChanging(int value);
    partial void OnCyclePeriodChanged();
    partial void OnTotalCyclesChanging(int value);
    partial void OnTotalCyclesChanged();
    partial void OnIsShipEnabledChanging(bool value);
    partial void OnIsShipEnabledChanged();
    partial void OnIsFreeShippingChanging(bool value);
    partial void OnIsFreeShippingChanged();
    partial void OnAdditionalShippingChargeChanging(decimal value);
    partial void OnAdditionalShippingChargeChanged();
    partial void OnIsTaxExemptChanging(bool value);
    partial void OnIsTaxExemptChanged();
    partial void OnTaxCategoryIDChanging(int value);
    partial void OnTaxCategoryIDChanged();
    partial void OnManageInventoryChanging(int value);
    partial void OnManageInventoryChanged();
    partial void OnStockQuantityChanging(int value);
    partial void OnStockQuantityChanged();
    partial void OnDisplayStockAvailabilityChanging(bool value);
    partial void OnDisplayStockAvailabilityChanged();
    partial void OnDisplayStockQuantityChanging(bool value);
    partial void OnDisplayStockQuantityChanged();
    partial void OnMinStockQuantityChanging(int value);
    partial void OnMinStockQuantityChanged();
    partial void OnLowStockActivityIDChanging(int value);
    partial void OnLowStockActivityIDChanged();
    partial void OnNotifyAdminForQuantityBelowChanging(int value);
    partial void OnNotifyAdminForQuantityBelowChanged();
    partial void OnBackordersChanging(int value);
    partial void OnBackordersChanged();
    partial void OnOrderMinimumQuantityChanging(int value);
    partial void OnOrderMinimumQuantityChanged();
    partial void OnOrderMaximumQuantityChanging(int value);
    partial void OnOrderMaximumQuantityChanged();
    partial void OnWarehouseIDChanging(int value);
    partial void OnWarehouseIDChanged();
    partial void OnDisableBuyButtonChanging(bool value);
    partial void OnDisableBuyButtonChanged();
    partial void OnCallForPriceChanging(bool value);
    partial void OnCallForPriceChanged();
    partial void OnPriceChanging(decimal value);
    partial void OnPriceChanged();
    partial void OnOldPriceChanging(decimal value);
    partial void OnOldPriceChanged();
    partial void OnProductCostChanging(decimal value);
    partial void OnProductCostChanged();
    partial void OnCustomerEntersPriceChanging(bool value);
    partial void OnCustomerEntersPriceChanged();
    partial void OnMinimumCustomerEnteredPriceChanging(decimal value);
    partial void OnMinimumCustomerEnteredPriceChanged();
    partial void OnMaximumCustomerEnteredPriceChanging(decimal value);
    partial void OnMaximumCustomerEnteredPriceChanged();
    partial void OnWeightChanging(decimal value);
    partial void OnWeightChanged();
    partial void OnLengthChanging(decimal value);
    partial void OnLengthChanged();
    partial void OnWidthChanging(decimal value);
    partial void OnWidthChanged();
    partial void OnHeightChanging(decimal value);
    partial void OnHeightChanged();
    partial void OnPictureIDChanging(int value);
    partial void OnPictureIDChanged();
    partial void OnAvailableStartDateTimeChanging(System.Nullable<System.DateTime> value);
    partial void OnAvailableStartDateTimeChanged();
    partial void OnAvailableEndDateTimeChanging(System.Nullable<System.DateTime> value);
    partial void OnAvailableEndDateTimeChanged();
    partial void OnPublishedChanging(bool value);
    partial void OnPublishedChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_ProductVariant()
		{
			this._Nop190_CustomerRole_ProductPrices = new EntitySet<Nop190_CustomerRole_ProductPrice>(new Action<Nop190_CustomerRole_ProductPrice>(this.attach_Nop190_CustomerRole_ProductPrices), new Action<Nop190_CustomerRole_ProductPrice>(this.detach_Nop190_CustomerRole_ProductPrices));
			this._Nop190_DiscountRestrictions = new EntitySet<Nop190_DiscountRestriction>(new Action<Nop190_DiscountRestriction>(this.attach_Nop190_DiscountRestrictions), new Action<Nop190_DiscountRestriction>(this.detach_Nop190_DiscountRestrictions));
			this._Nop190_OrderProductVariants = new EntitySet<Nop190_OrderProductVariant>(new Action<Nop190_OrderProductVariant>(this.attach_Nop190_OrderProductVariants), new Action<Nop190_OrderProductVariant>(this.detach_Nop190_OrderProductVariants));
			this._Nop190_ProductVariant_Discount_Mappings = new EntitySet<Nop190_ProductVariant_Discount_Mapping>(new Action<Nop190_ProductVariant_Discount_Mapping>(this.attach_Nop190_ProductVariant_Discount_Mappings), new Action<Nop190_ProductVariant_Discount_Mapping>(this.detach_Nop190_ProductVariant_Discount_Mappings));
			this._Nop190_ProductVariant_Pricelist_Mappings = new EntitySet<Nop190_ProductVariant_Pricelist_Mapping>(new Action<Nop190_ProductVariant_Pricelist_Mapping>(this.attach_Nop190_ProductVariant_Pricelist_Mappings), new Action<Nop190_ProductVariant_Pricelist_Mapping>(this.detach_Nop190_ProductVariant_Pricelist_Mappings));
			this._Nop190_ProductVariant_ProductAttribute_Mappings = new EntitySet<Nop190_ProductVariant_ProductAttribute_Mapping>(new Action<Nop190_ProductVariant_ProductAttribute_Mapping>(this.attach_Nop190_ProductVariant_ProductAttribute_Mappings), new Action<Nop190_ProductVariant_ProductAttribute_Mapping>(this.detach_Nop190_ProductVariant_ProductAttribute_Mappings));
			this._Nop190_ProductVariantAttributeCombinations = new EntitySet<Nop190_ProductVariantAttributeCombination>(new Action<Nop190_ProductVariantAttributeCombination>(this.attach_Nop190_ProductVariantAttributeCombinations), new Action<Nop190_ProductVariantAttributeCombination>(this.detach_Nop190_ProductVariantAttributeCombinations));
			this._Nop190_ProductVariantLocalizeds = new EntitySet<Nop190_ProductVariantLocalized>(new Action<Nop190_ProductVariantLocalized>(this.attach_Nop190_ProductVariantLocalizeds), new Action<Nop190_ProductVariantLocalized>(this.detach_Nop190_ProductVariantLocalizeds));
			this._Nop190_ShoppingCartItems = new EntitySet<Nop190_ShoppingCartItem>(new Action<Nop190_ShoppingCartItem>(this.attach_Nop190_ShoppingCartItems), new Action<Nop190_ShoppingCartItem>(this.detach_Nop190_ShoppingCartItems));
			this._Nop190_TierPrices = new EntitySet<Nop190_TierPrice>(new Action<Nop190_TierPrice>(this.attach_Nop190_TierPrices), new Action<Nop190_TierPrice>(this.detach_Nop190_TierPrices));
			this._Nop190_Product = default(EntityRef<Nop190_Product>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductVariantId
		{
			get
			{
				return this._ProductVariantId;
			}
			set
			{
				if ((this._ProductVariantId != value))
				{
					this.OnProductVariantIdChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantId = value;
					this.SendPropertyChanged("ProductVariantId");
					this.OnProductVariantIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", DbType="Int NOT NULL")]
		public int ProductID
		{
			get
			{
				return this._ProductID;
			}
			set
			{
				if ((this._ProductID != value))
				{
					if (this._Nop190_Product.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductIDChanging(value);
					this.SendPropertyChanging();
					this._ProductID = value;
					this.SendPropertyChanged("ProductID");
					this.OnProductIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SKU", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SKU
		{
			get
			{
				return this._SKU;
			}
			set
			{
				if ((this._SKU != value))
				{
					this.OnSKUChanging(value);
					this.SendPropertyChanging();
					this._SKU = value;
					this.SendPropertyChanged("SKU");
					this.OnSKUChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AdminComment", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string AdminComment
		{
			get
			{
				return this._AdminComment;
			}
			set
			{
				if ((this._AdminComment != value))
				{
					this.OnAdminCommentChanging(value);
					this.SendPropertyChanging();
					this._AdminComment = value;
					this.SendPropertyChanged("AdminComment");
					this.OnAdminCommentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ManufacturerPartNumber", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string ManufacturerPartNumber
		{
			get
			{
				return this._ManufacturerPartNumber;
			}
			set
			{
				if ((this._ManufacturerPartNumber != value))
				{
					this.OnManufacturerPartNumberChanging(value);
					this.SendPropertyChanging();
					this._ManufacturerPartNumber = value;
					this.SendPropertyChanged("ManufacturerPartNumber");
					this.OnManufacturerPartNumberChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsGiftCard", DbType="Bit NOT NULL")]
		public bool IsGiftCard
		{
			get
			{
				return this._IsGiftCard;
			}
			set
			{
				if ((this._IsGiftCard != value))
				{
					this.OnIsGiftCardChanging(value);
					this.SendPropertyChanging();
					this._IsGiftCard = value;
					this.SendPropertyChanged("IsGiftCard");
					this.OnIsGiftCardChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GiftCardType", DbType="Int NOT NULL")]
		public int GiftCardType
		{
			get
			{
				return this._GiftCardType;
			}
			set
			{
				if ((this._GiftCardType != value))
				{
					this.OnGiftCardTypeChanging(value);
					this.SendPropertyChanging();
					this._GiftCardType = value;
					this.SendPropertyChanged("GiftCardType");
					this.OnGiftCardTypeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsDownload", DbType="Bit NOT NULL")]
		public bool IsDownload
		{
			get
			{
				return this._IsDownload;
			}
			set
			{
				if ((this._IsDownload != value))
				{
					this.OnIsDownloadChanging(value);
					this.SendPropertyChanging();
					this._IsDownload = value;
					this.SendPropertyChanged("IsDownload");
					this.OnIsDownloadChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DownloadID", DbType="Int NOT NULL")]
		public int DownloadID
		{
			get
			{
				return this._DownloadID;
			}
			set
			{
				if ((this._DownloadID != value))
				{
					this.OnDownloadIDChanging(value);
					this.SendPropertyChanging();
					this._DownloadID = value;
					this.SendPropertyChanged("DownloadID");
					this.OnDownloadIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UnlimitedDownloads", DbType="Bit NOT NULL")]
		public bool UnlimitedDownloads
		{
			get
			{
				return this._UnlimitedDownloads;
			}
			set
			{
				if ((this._UnlimitedDownloads != value))
				{
					this.OnUnlimitedDownloadsChanging(value);
					this.SendPropertyChanging();
					this._UnlimitedDownloads = value;
					this.SendPropertyChanged("UnlimitedDownloads");
					this.OnUnlimitedDownloadsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaxNumberOfDownloads", DbType="Int NOT NULL")]
		public int MaxNumberOfDownloads
		{
			get
			{
				return this._MaxNumberOfDownloads;
			}
			set
			{
				if ((this._MaxNumberOfDownloads != value))
				{
					this.OnMaxNumberOfDownloadsChanging(value);
					this.SendPropertyChanging();
					this._MaxNumberOfDownloads = value;
					this.SendPropertyChanged("MaxNumberOfDownloads");
					this.OnMaxNumberOfDownloadsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DownloadExpirationDays", DbType="Int")]
		public System.Nullable<int> DownloadExpirationDays
		{
			get
			{
				return this._DownloadExpirationDays;
			}
			set
			{
				if ((this._DownloadExpirationDays != value))
				{
					this.OnDownloadExpirationDaysChanging(value);
					this.SendPropertyChanging();
					this._DownloadExpirationDays = value;
					this.SendPropertyChanged("DownloadExpirationDays");
					this.OnDownloadExpirationDaysChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DownloadActivationType", DbType="Int NOT NULL")]
		public int DownloadActivationType
		{
			get
			{
				return this._DownloadActivationType;
			}
			set
			{
				if ((this._DownloadActivationType != value))
				{
					this.OnDownloadActivationTypeChanging(value);
					this.SendPropertyChanging();
					this._DownloadActivationType = value;
					this.SendPropertyChanged("DownloadActivationType");
					this.OnDownloadActivationTypeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HasSampleDownload", DbType="Bit NOT NULL")]
		public bool HasSampleDownload
		{
			get
			{
				return this._HasSampleDownload;
			}
			set
			{
				if ((this._HasSampleDownload != value))
				{
					this.OnHasSampleDownloadChanging(value);
					this.SendPropertyChanging();
					this._HasSampleDownload = value;
					this.SendPropertyChanged("HasSampleDownload");
					this.OnHasSampleDownloadChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SampleDownloadID", DbType="Int NOT NULL")]
		public int SampleDownloadID
		{
			get
			{
				return this._SampleDownloadID;
			}
			set
			{
				if ((this._SampleDownloadID != value))
				{
					this.OnSampleDownloadIDChanging(value);
					this.SendPropertyChanging();
					this._SampleDownloadID = value;
					this.SendPropertyChanged("SampleDownloadID");
					this.OnSampleDownloadIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HasUserAgreement", DbType="Bit NOT NULL")]
		public bool HasUserAgreement
		{
			get
			{
				return this._HasUserAgreement;
			}
			set
			{
				if ((this._HasUserAgreement != value))
				{
					this.OnHasUserAgreementChanging(value);
					this.SendPropertyChanging();
					this._HasUserAgreement = value;
					this.SendPropertyChanged("HasUserAgreement");
					this.OnHasUserAgreementChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserAgreementText", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string UserAgreementText
		{
			get
			{
				return this._UserAgreementText;
			}
			set
			{
				if ((this._UserAgreementText != value))
				{
					this.OnUserAgreementTextChanging(value);
					this.SendPropertyChanging();
					this._UserAgreementText = value;
					this.SendPropertyChanged("UserAgreementText");
					this.OnUserAgreementTextChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsRecurring", DbType="Bit NOT NULL")]
		public bool IsRecurring
		{
			get
			{
				return this._IsRecurring;
			}
			set
			{
				if ((this._IsRecurring != value))
				{
					this.OnIsRecurringChanging(value);
					this.SendPropertyChanging();
					this._IsRecurring = value;
					this.SendPropertyChanged("IsRecurring");
					this.OnIsRecurringChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CycleLength", DbType="Int NOT NULL")]
		public int CycleLength
		{
			get
			{
				return this._CycleLength;
			}
			set
			{
				if ((this._CycleLength != value))
				{
					this.OnCycleLengthChanging(value);
					this.SendPropertyChanging();
					this._CycleLength = value;
					this.SendPropertyChanged("CycleLength");
					this.OnCycleLengthChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CyclePeriod", DbType="Int NOT NULL")]
		public int CyclePeriod
		{
			get
			{
				return this._CyclePeriod;
			}
			set
			{
				if ((this._CyclePeriod != value))
				{
					this.OnCyclePeriodChanging(value);
					this.SendPropertyChanging();
					this._CyclePeriod = value;
					this.SendPropertyChanged("CyclePeriod");
					this.OnCyclePeriodChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalCycles", DbType="Int NOT NULL")]
		public int TotalCycles
		{
			get
			{
				return this._TotalCycles;
			}
			set
			{
				if ((this._TotalCycles != value))
				{
					this.OnTotalCyclesChanging(value);
					this.SendPropertyChanging();
					this._TotalCycles = value;
					this.SendPropertyChanged("TotalCycles");
					this.OnTotalCyclesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsShipEnabled", DbType="Bit NOT NULL")]
		public bool IsShipEnabled
		{
			get
			{
				return this._IsShipEnabled;
			}
			set
			{
				if ((this._IsShipEnabled != value))
				{
					this.OnIsShipEnabledChanging(value);
					this.SendPropertyChanging();
					this._IsShipEnabled = value;
					this.SendPropertyChanged("IsShipEnabled");
					this.OnIsShipEnabledChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsFreeShipping", DbType="Bit NOT NULL")]
		public bool IsFreeShipping
		{
			get
			{
				return this._IsFreeShipping;
			}
			set
			{
				if ((this._IsFreeShipping != value))
				{
					this.OnIsFreeShippingChanging(value);
					this.SendPropertyChanging();
					this._IsFreeShipping = value;
					this.SendPropertyChanged("IsFreeShipping");
					this.OnIsFreeShippingChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AdditionalShippingCharge", DbType="Money NOT NULL")]
		public decimal AdditionalShippingCharge
		{
			get
			{
				return this._AdditionalShippingCharge;
			}
			set
			{
				if ((this._AdditionalShippingCharge != value))
				{
					this.OnAdditionalShippingChargeChanging(value);
					this.SendPropertyChanging();
					this._AdditionalShippingCharge = value;
					this.SendPropertyChanged("AdditionalShippingCharge");
					this.OnAdditionalShippingChargeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsTaxExempt", DbType="Bit NOT NULL")]
		public bool IsTaxExempt
		{
			get
			{
				return this._IsTaxExempt;
			}
			set
			{
				if ((this._IsTaxExempt != value))
				{
					this.OnIsTaxExemptChanging(value);
					this.SendPropertyChanging();
					this._IsTaxExempt = value;
					this.SendPropertyChanged("IsTaxExempt");
					this.OnIsTaxExemptChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaxCategoryID", DbType="Int NOT NULL")]
		public int TaxCategoryID
		{
			get
			{
				return this._TaxCategoryID;
			}
			set
			{
				if ((this._TaxCategoryID != value))
				{
					this.OnTaxCategoryIDChanging(value);
					this.SendPropertyChanging();
					this._TaxCategoryID = value;
					this.SendPropertyChanged("TaxCategoryID");
					this.OnTaxCategoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ManageInventory", DbType="Int NOT NULL")]
		public int ManageInventory
		{
			get
			{
				return this._ManageInventory;
			}
			set
			{
				if ((this._ManageInventory != value))
				{
					this.OnManageInventoryChanging(value);
					this.SendPropertyChanging();
					this._ManageInventory = value;
					this.SendPropertyChanged("ManageInventory");
					this.OnManageInventoryChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StockQuantity", DbType="Int NOT NULL")]
		public int StockQuantity
		{
			get
			{
				return this._StockQuantity;
			}
			set
			{
				if ((this._StockQuantity != value))
				{
					this.OnStockQuantityChanging(value);
					this.SendPropertyChanging();
					this._StockQuantity = value;
					this.SendPropertyChanged("StockQuantity");
					this.OnStockQuantityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayStockAvailability", DbType="Bit NOT NULL")]
		public bool DisplayStockAvailability
		{
			get
			{
				return this._DisplayStockAvailability;
			}
			set
			{
				if ((this._DisplayStockAvailability != value))
				{
					this.OnDisplayStockAvailabilityChanging(value);
					this.SendPropertyChanging();
					this._DisplayStockAvailability = value;
					this.SendPropertyChanged("DisplayStockAvailability");
					this.OnDisplayStockAvailabilityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayStockQuantity", DbType="Bit NOT NULL")]
		public bool DisplayStockQuantity
		{
			get
			{
				return this._DisplayStockQuantity;
			}
			set
			{
				if ((this._DisplayStockQuantity != value))
				{
					this.OnDisplayStockQuantityChanging(value);
					this.SendPropertyChanging();
					this._DisplayStockQuantity = value;
					this.SendPropertyChanged("DisplayStockQuantity");
					this.OnDisplayStockQuantityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MinStockQuantity", DbType="Int NOT NULL")]
		public int MinStockQuantity
		{
			get
			{
				return this._MinStockQuantity;
			}
			set
			{
				if ((this._MinStockQuantity != value))
				{
					this.OnMinStockQuantityChanging(value);
					this.SendPropertyChanging();
					this._MinStockQuantity = value;
					this.SendPropertyChanged("MinStockQuantity");
					this.OnMinStockQuantityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LowStockActivityID", DbType="Int NOT NULL")]
		public int LowStockActivityID
		{
			get
			{
				return this._LowStockActivityID;
			}
			set
			{
				if ((this._LowStockActivityID != value))
				{
					this.OnLowStockActivityIDChanging(value);
					this.SendPropertyChanging();
					this._LowStockActivityID = value;
					this.SendPropertyChanged("LowStockActivityID");
					this.OnLowStockActivityIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NotifyAdminForQuantityBelow", DbType="Int NOT NULL")]
		public int NotifyAdminForQuantityBelow
		{
			get
			{
				return this._NotifyAdminForQuantityBelow;
			}
			set
			{
				if ((this._NotifyAdminForQuantityBelow != value))
				{
					this.OnNotifyAdminForQuantityBelowChanging(value);
					this.SendPropertyChanging();
					this._NotifyAdminForQuantityBelow = value;
					this.SendPropertyChanged("NotifyAdminForQuantityBelow");
					this.OnNotifyAdminForQuantityBelowChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Backorders", DbType="Int NOT NULL")]
		public int Backorders
		{
			get
			{
				return this._Backorders;
			}
			set
			{
				if ((this._Backorders != value))
				{
					this.OnBackordersChanging(value);
					this.SendPropertyChanging();
					this._Backorders = value;
					this.SendPropertyChanged("Backorders");
					this.OnBackordersChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderMinimumQuantity", DbType="Int NOT NULL")]
		public int OrderMinimumQuantity
		{
			get
			{
				return this._OrderMinimumQuantity;
			}
			set
			{
				if ((this._OrderMinimumQuantity != value))
				{
					this.OnOrderMinimumQuantityChanging(value);
					this.SendPropertyChanging();
					this._OrderMinimumQuantity = value;
					this.SendPropertyChanged("OrderMinimumQuantity");
					this.OnOrderMinimumQuantityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderMaximumQuantity", DbType="Int NOT NULL")]
		public int OrderMaximumQuantity
		{
			get
			{
				return this._OrderMaximumQuantity;
			}
			set
			{
				if ((this._OrderMaximumQuantity != value))
				{
					this.OnOrderMaximumQuantityChanging(value);
					this.SendPropertyChanging();
					this._OrderMaximumQuantity = value;
					this.SendPropertyChanged("OrderMaximumQuantity");
					this.OnOrderMaximumQuantityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WarehouseID", DbType="Int NOT NULL")]
		public int WarehouseID
		{
			get
			{
				return this._WarehouseID;
			}
			set
			{
				if ((this._WarehouseID != value))
				{
					this.OnWarehouseIDChanging(value);
					this.SendPropertyChanging();
					this._WarehouseID = value;
					this.SendPropertyChanged("WarehouseID");
					this.OnWarehouseIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisableBuyButton", DbType="Bit NOT NULL")]
		public bool DisableBuyButton
		{
			get
			{
				return this._DisableBuyButton;
			}
			set
			{
				if ((this._DisableBuyButton != value))
				{
					this.OnDisableBuyButtonChanging(value);
					this.SendPropertyChanging();
					this._DisableBuyButton = value;
					this.SendPropertyChanged("DisableBuyButton");
					this.OnDisableBuyButtonChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CallForPrice", DbType="Bit NOT NULL")]
		public bool CallForPrice
		{
			get
			{
				return this._CallForPrice;
			}
			set
			{
				if ((this._CallForPrice != value))
				{
					this.OnCallForPriceChanging(value);
					this.SendPropertyChanging();
					this._CallForPrice = value;
					this.SendPropertyChanged("CallForPrice");
					this.OnCallForPriceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Price", DbType="Money NOT NULL")]
		public decimal Price
		{
			get
			{
				return this._Price;
			}
			set
			{
				if ((this._Price != value))
				{
					this.OnPriceChanging(value);
					this.SendPropertyChanging();
					this._Price = value;
					this.SendPropertyChanged("Price");
					this.OnPriceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OldPrice", DbType="Money NOT NULL")]
		public decimal OldPrice
		{
			get
			{
				return this._OldPrice;
			}
			set
			{
				if ((this._OldPrice != value))
				{
					this.OnOldPriceChanging(value);
					this.SendPropertyChanging();
					this._OldPrice = value;
					this.SendPropertyChanged("OldPrice");
					this.OnOldPriceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductCost", DbType="Money NOT NULL")]
		public decimal ProductCost
		{
			get
			{
				return this._ProductCost;
			}
			set
			{
				if ((this._ProductCost != value))
				{
					this.OnProductCostChanging(value);
					this.SendPropertyChanging();
					this._ProductCost = value;
					this.SendPropertyChanged("ProductCost");
					this.OnProductCostChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerEntersPrice", DbType="Bit NOT NULL")]
		public bool CustomerEntersPrice
		{
			get
			{
				return this._CustomerEntersPrice;
			}
			set
			{
				if ((this._CustomerEntersPrice != value))
				{
					this.OnCustomerEntersPriceChanging(value);
					this.SendPropertyChanging();
					this._CustomerEntersPrice = value;
					this.SendPropertyChanged("CustomerEntersPrice");
					this.OnCustomerEntersPriceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MinimumCustomerEnteredPrice", DbType="Money NOT NULL")]
		public decimal MinimumCustomerEnteredPrice
		{
			get
			{
				return this._MinimumCustomerEnteredPrice;
			}
			set
			{
				if ((this._MinimumCustomerEnteredPrice != value))
				{
					this.OnMinimumCustomerEnteredPriceChanging(value);
					this.SendPropertyChanging();
					this._MinimumCustomerEnteredPrice = value;
					this.SendPropertyChanged("MinimumCustomerEnteredPrice");
					this.OnMinimumCustomerEnteredPriceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaximumCustomerEnteredPrice", DbType="Money NOT NULL")]
		public decimal MaximumCustomerEnteredPrice
		{
			get
			{
				return this._MaximumCustomerEnteredPrice;
			}
			set
			{
				if ((this._MaximumCustomerEnteredPrice != value))
				{
					this.OnMaximumCustomerEnteredPriceChanging(value);
					this.SendPropertyChanging();
					this._MaximumCustomerEnteredPrice = value;
					this.SendPropertyChanged("MaximumCustomerEnteredPrice");
					this.OnMaximumCustomerEnteredPriceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Weight", DbType="Decimal(18,4) NOT NULL")]
		public decimal Weight
		{
			get
			{
				return this._Weight;
			}
			set
			{
				if ((this._Weight != value))
				{
					this.OnWeightChanging(value);
					this.SendPropertyChanging();
					this._Weight = value;
					this.SendPropertyChanged("Weight");
					this.OnWeightChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Length", DbType="Decimal(18,4) NOT NULL")]
		public decimal Length
		{
			get
			{
				return this._Length;
			}
			set
			{
				if ((this._Length != value))
				{
					this.OnLengthChanging(value);
					this.SendPropertyChanging();
					this._Length = value;
					this.SendPropertyChanged("Length");
					this.OnLengthChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Width", DbType="Decimal(18,4) NOT NULL")]
		public decimal Width
		{
			get
			{
				return this._Width;
			}
			set
			{
				if ((this._Width != value))
				{
					this.OnWidthChanging(value);
					this.SendPropertyChanging();
					this._Width = value;
					this.SendPropertyChanged("Width");
					this.OnWidthChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Height", DbType="Decimal(18,4) NOT NULL")]
		public decimal Height
		{
			get
			{
				return this._Height;
			}
			set
			{
				if ((this._Height != value))
				{
					this.OnHeightChanging(value);
					this.SendPropertyChanging();
					this._Height = value;
					this.SendPropertyChanged("Height");
					this.OnHeightChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PictureID", DbType="Int NOT NULL")]
		public int PictureID
		{
			get
			{
				return this._PictureID;
			}
			set
			{
				if ((this._PictureID != value))
				{
					this.OnPictureIDChanging(value);
					this.SendPropertyChanging();
					this._PictureID = value;
					this.SendPropertyChanged("PictureID");
					this.OnPictureIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AvailableStartDateTime", DbType="DateTime")]
		public System.Nullable<System.DateTime> AvailableStartDateTime
		{
			get
			{
				return this._AvailableStartDateTime;
			}
			set
			{
				if ((this._AvailableStartDateTime != value))
				{
					this.OnAvailableStartDateTimeChanging(value);
					this.SendPropertyChanging();
					this._AvailableStartDateTime = value;
					this.SendPropertyChanged("AvailableStartDateTime");
					this.OnAvailableStartDateTimeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AvailableEndDateTime", DbType="DateTime")]
		public System.Nullable<System.DateTime> AvailableEndDateTime
		{
			get
			{
				return this._AvailableEndDateTime;
			}
			set
			{
				if ((this._AvailableEndDateTime != value))
				{
					this.OnAvailableEndDateTimeChanging(value);
					this.SendPropertyChanging();
					this._AvailableEndDateTime = value;
					this.SendPropertyChanged("AvailableEndDateTime");
					this.OnAvailableEndDateTimeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Published", DbType="Bit NOT NULL")]
		public bool Published
		{
			get
			{
				return this._Published;
			}
			set
			{
				if ((this._Published != value))
				{
					this.OnPublishedChanging(value);
					this.SendPropertyChanging();
					this._Published = value;
					this.SendPropertyChanged("Published");
					this.OnPublishedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_CustomerRole_ProductPrice", Storage="_Nop190_CustomerRole_ProductPrices", ThisKey="ProductVariantId", OtherKey="ProductVariantID")]
		public EntitySet<Nop190_CustomerRole_ProductPrice> Nop190_CustomerRole_ProductPrices
		{
			get
			{
				return this._Nop190_CustomerRole_ProductPrices;
			}
			set
			{
				this._Nop190_CustomerRole_ProductPrices.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_DiscountRestriction", Storage="_Nop190_DiscountRestrictions", ThisKey="ProductVariantId", OtherKey="ProductVariantID")]
		public EntitySet<Nop190_DiscountRestriction> Nop190_DiscountRestrictions
		{
			get
			{
				return this._Nop190_DiscountRestrictions;
			}
			set
			{
				this._Nop190_DiscountRestrictions.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_OrderProductVariant", Storage="_Nop190_OrderProductVariants", ThisKey="ProductVariantId", OtherKey="ProductVariantID")]
		public EntitySet<Nop190_OrderProductVariant> Nop190_OrderProductVariants
		{
			get
			{
				return this._Nop190_OrderProductVariants;
			}
			set
			{
				this._Nop190_OrderProductVariants.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ProductVariant_Discount_Mapping", Storage="_Nop190_ProductVariant_Discount_Mappings", ThisKey="ProductVariantId", OtherKey="ProductVariantID")]
		public EntitySet<Nop190_ProductVariant_Discount_Mapping> Nop190_ProductVariant_Discount_Mappings
		{
			get
			{
				return this._Nop190_ProductVariant_Discount_Mappings;
			}
			set
			{
				this._Nop190_ProductVariant_Discount_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ProductVariant_Pricelist_Mapping", Storage="_Nop190_ProductVariant_Pricelist_Mappings", ThisKey="ProductVariantId", OtherKey="ProductVariantID")]
		public EntitySet<Nop190_ProductVariant_Pricelist_Mapping> Nop190_ProductVariant_Pricelist_Mappings
		{
			get
			{
				return this._Nop190_ProductVariant_Pricelist_Mappings;
			}
			set
			{
				this._Nop190_ProductVariant_Pricelist_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ProductVariant_ProductAttribute_Mapping", Storage="_Nop190_ProductVariant_ProductAttribute_Mappings", ThisKey="ProductVariantId", OtherKey="ProductVariantID")]
		public EntitySet<Nop190_ProductVariant_ProductAttribute_Mapping> Nop190_ProductVariant_ProductAttribute_Mappings
		{
			get
			{
				return this._Nop190_ProductVariant_ProductAttribute_Mappings;
			}
			set
			{
				this._Nop190_ProductVariant_ProductAttribute_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ProductVariantAttributeCombination", Storage="_Nop190_ProductVariantAttributeCombinations", ThisKey="ProductVariantId", OtherKey="ProductVariantID")]
		public EntitySet<Nop190_ProductVariantAttributeCombination> Nop190_ProductVariantAttributeCombinations
		{
			get
			{
				return this._Nop190_ProductVariantAttributeCombinations;
			}
			set
			{
				this._Nop190_ProductVariantAttributeCombinations.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ProductVariantLocalized", Storage="_Nop190_ProductVariantLocalizeds", ThisKey="ProductVariantId", OtherKey="ProductVariantID")]
		public EntitySet<Nop190_ProductVariantLocalized> Nop190_ProductVariantLocalizeds
		{
			get
			{
				return this._Nop190_ProductVariantLocalizeds;
			}
			set
			{
				this._Nop190_ProductVariantLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ShoppingCartItem", Storage="_Nop190_ShoppingCartItems", ThisKey="ProductVariantId", OtherKey="ProductVariantID")]
		public EntitySet<Nop190_ShoppingCartItem> Nop190_ShoppingCartItems
		{
			get
			{
				return this._Nop190_ShoppingCartItems;
			}
			set
			{
				this._Nop190_ShoppingCartItems.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_TierPrice", Storage="_Nop190_TierPrices", ThisKey="ProductVariantId", OtherKey="ProductVariantID")]
		public EntitySet<Nop190_TierPrice> Nop190_TierPrices
		{
			get
			{
				return this._Nop190_TierPrices;
			}
			set
			{
				this._Nop190_TierPrices.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_ProductVariant", Storage="_Nop190_Product", ThisKey="ProductID", OtherKey="ProductId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Product Nop190_Product
		{
			get
			{
				return this._Nop190_Product.Entity;
			}
			set
			{
				Nop190_Product previousValue = this._Nop190_Product.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Product.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Product.Entity = null;
						previousValue.Nop190_ProductVariants.Remove(this);
					}
					this._Nop190_Product.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariants.Add(this);
						this._ProductID = value.ProductId;
					}
					else
					{
						this._ProductID = default(int);
					}
					this.SendPropertyChanged("Nop190_Product");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_CustomerRole_ProductPrices(Nop190_CustomerRole_ProductPrice entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = this;
		}
		
		private void detach_Nop190_CustomerRole_ProductPrices(Nop190_CustomerRole_ProductPrice entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = null;
		}
		
		private void attach_Nop190_DiscountRestrictions(Nop190_DiscountRestriction entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = this;
		}
		
		private void detach_Nop190_DiscountRestrictions(Nop190_DiscountRestriction entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = null;
		}
		
		private void attach_Nop190_OrderProductVariants(Nop190_OrderProductVariant entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = this;
		}
		
		private void detach_Nop190_OrderProductVariants(Nop190_OrderProductVariant entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = null;
		}
		
		private void attach_Nop190_ProductVariant_Discount_Mappings(Nop190_ProductVariant_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = this;
		}
		
		private void detach_Nop190_ProductVariant_Discount_Mappings(Nop190_ProductVariant_Discount_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = null;
		}
		
		private void attach_Nop190_ProductVariant_Pricelist_Mappings(Nop190_ProductVariant_Pricelist_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = this;
		}
		
		private void detach_Nop190_ProductVariant_Pricelist_Mappings(Nop190_ProductVariant_Pricelist_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = null;
		}
		
		private void attach_Nop190_ProductVariant_ProductAttribute_Mappings(Nop190_ProductVariant_ProductAttribute_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = this;
		}
		
		private void detach_Nop190_ProductVariant_ProductAttribute_Mappings(Nop190_ProductVariant_ProductAttribute_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = null;
		}
		
		private void attach_Nop190_ProductVariantAttributeCombinations(Nop190_ProductVariantAttributeCombination entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = this;
		}
		
		private void detach_Nop190_ProductVariantAttributeCombinations(Nop190_ProductVariantAttributeCombination entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = null;
		}
		
		private void attach_Nop190_ProductVariantLocalizeds(Nop190_ProductVariantLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = this;
		}
		
		private void detach_Nop190_ProductVariantLocalizeds(Nop190_ProductVariantLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = null;
		}
		
		private void attach_Nop190_ShoppingCartItems(Nop190_ShoppingCartItem entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = this;
		}
		
		private void detach_Nop190_ShoppingCartItems(Nop190_ShoppingCartItem entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = null;
		}
		
		private void attach_Nop190_TierPrices(Nop190_TierPrice entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = this;
		}
		
		private void detach_Nop190_TierPrices(Nop190_TierPrice entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductVariant_Discount_Mapping")]
	public partial class Nop190_ProductVariant_Discount_Mapping : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductVariantID;
		
		private int _DiscountID;
		
		private EntityRef<Nop190_Discount> _Nop190_Discount;
		
		private EntityRef<Nop190_ProductVariant> _Nop190_ProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductVariantIDChanging(int value);
    partial void OnProductVariantIDChanged();
    partial void OnDiscountIDChanging(int value);
    partial void OnDiscountIDChanged();
    #endregion
		
		public Nop190_ProductVariant_Discount_Mapping()
		{
			this._Nop190_Discount = default(EntityRef<Nop190_Discount>);
			this._Nop190_ProductVariant = default(EntityRef<Nop190_ProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int ProductVariantID
		{
			get
			{
				return this._ProductVariantID;
			}
			set
			{
				if ((this._ProductVariantID != value))
				{
					if (this._Nop190_ProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantID = value;
					this.SendPropertyChanged("ProductVariantID");
					this.OnProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DiscountID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int DiscountID
		{
			get
			{
				return this._DiscountID;
			}
			set
			{
				if ((this._DiscountID != value))
				{
					if (this._Nop190_Discount.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnDiscountIDChanging(value);
					this.SendPropertyChanging();
					this._DiscountID = value;
					this.SendPropertyChanged("DiscountID");
					this.OnDiscountIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Discount_Nop190_ProductVariant_Discount_Mapping", Storage="_Nop190_Discount", ThisKey="DiscountID", OtherKey="DiscountID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Discount Nop190_Discount
		{
			get
			{
				return this._Nop190_Discount.Entity;
			}
			set
			{
				Nop190_Discount previousValue = this._Nop190_Discount.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Discount.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Discount.Entity = null;
						previousValue.Nop190_ProductVariant_Discount_Mappings.Remove(this);
					}
					this._Nop190_Discount.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariant_Discount_Mappings.Add(this);
						this._DiscountID = value.DiscountID;
					}
					else
					{
						this._DiscountID = default(int);
					}
					this.SendPropertyChanged("Nop190_Discount");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ProductVariant_Discount_Mapping", Storage="_Nop190_ProductVariant", ThisKey="ProductVariantID", OtherKey="ProductVariantId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductVariant Nop190_ProductVariant
		{
			get
			{
				return this._Nop190_ProductVariant.Entity;
			}
			set
			{
				Nop190_ProductVariant previousValue = this._Nop190_ProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariant.Entity = null;
						previousValue.Nop190_ProductVariant_Discount_Mappings.Remove(this);
					}
					this._Nop190_ProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariant_Discount_Mappings.Add(this);
						this._ProductVariantID = value.ProductVariantId;
					}
					else
					{
						this._ProductVariantID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductVariant_Pricelist_Mapping")]
	public partial class Nop190_ProductVariant_Pricelist_Mapping : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductVariantPricelistID;
		
		private int _ProductVariantID;
		
		private int _PricelistID;
		
		private int _PriceAdjustmentTypeID;
		
		private decimal _PriceAdjustment;
		
		private System.DateTime _UpdatedOn;
		
		private EntityRef<Nop190_Pricelist> _Nop190_Pricelist;
		
		private EntityRef<Nop190_ProductVariant> _Nop190_ProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductVariantPricelistIDChanging(int value);
    partial void OnProductVariantPricelistIDChanged();
    partial void OnProductVariantIDChanging(int value);
    partial void OnProductVariantIDChanged();
    partial void OnPricelistIDChanging(int value);
    partial void OnPricelistIDChanged();
    partial void OnPriceAdjustmentTypeIDChanging(int value);
    partial void OnPriceAdjustmentTypeIDChanged();
    partial void OnPriceAdjustmentChanging(decimal value);
    partial void OnPriceAdjustmentChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_ProductVariant_Pricelist_Mapping()
		{
			this._Nop190_Pricelist = default(EntityRef<Nop190_Pricelist>);
			this._Nop190_ProductVariant = default(EntityRef<Nop190_ProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantPricelistID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductVariantPricelistID
		{
			get
			{
				return this._ProductVariantPricelistID;
			}
			set
			{
				if ((this._ProductVariantPricelistID != value))
				{
					this.OnProductVariantPricelistIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantPricelistID = value;
					this.SendPropertyChanged("ProductVariantPricelistID");
					this.OnProductVariantPricelistIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantID", DbType="Int NOT NULL")]
		public int ProductVariantID
		{
			get
			{
				return this._ProductVariantID;
			}
			set
			{
				if ((this._ProductVariantID != value))
				{
					if (this._Nop190_ProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantID = value;
					this.SendPropertyChanged("ProductVariantID");
					this.OnProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PricelistID", DbType="Int NOT NULL")]
		public int PricelistID
		{
			get
			{
				return this._PricelistID;
			}
			set
			{
				if ((this._PricelistID != value))
				{
					if (this._Nop190_Pricelist.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnPricelistIDChanging(value);
					this.SendPropertyChanging();
					this._PricelistID = value;
					this.SendPropertyChanged("PricelistID");
					this.OnPricelistIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceAdjustmentTypeID", DbType="Int NOT NULL")]
		public int PriceAdjustmentTypeID
		{
			get
			{
				return this._PriceAdjustmentTypeID;
			}
			set
			{
				if ((this._PriceAdjustmentTypeID != value))
				{
					this.OnPriceAdjustmentTypeIDChanging(value);
					this.SendPropertyChanging();
					this._PriceAdjustmentTypeID = value;
					this.SendPropertyChanged("PriceAdjustmentTypeID");
					this.OnPriceAdjustmentTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceAdjustment", DbType="Money NOT NULL")]
		public decimal PriceAdjustment
		{
			get
			{
				return this._PriceAdjustment;
			}
			set
			{
				if ((this._PriceAdjustment != value))
				{
					this.OnPriceAdjustmentChanging(value);
					this.SendPropertyChanging();
					this._PriceAdjustment = value;
					this.SendPropertyChanged("PriceAdjustment");
					this.OnPriceAdjustmentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Pricelist_Nop190_ProductVariant_Pricelist_Mapping", Storage="_Nop190_Pricelist", ThisKey="PricelistID", OtherKey="PricelistID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Pricelist Nop190_Pricelist
		{
			get
			{
				return this._Nop190_Pricelist.Entity;
			}
			set
			{
				Nop190_Pricelist previousValue = this._Nop190_Pricelist.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Pricelist.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Pricelist.Entity = null;
						previousValue.Nop190_ProductVariant_Pricelist_Mappings.Remove(this);
					}
					this._Nop190_Pricelist.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariant_Pricelist_Mappings.Add(this);
						this._PricelistID = value.PricelistID;
					}
					else
					{
						this._PricelistID = default(int);
					}
					this.SendPropertyChanged("Nop190_Pricelist");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ProductVariant_Pricelist_Mapping", Storage="_Nop190_ProductVariant", ThisKey="ProductVariantID", OtherKey="ProductVariantId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductVariant Nop190_ProductVariant
		{
			get
			{
				return this._Nop190_ProductVariant.Entity;
			}
			set
			{
				Nop190_ProductVariant previousValue = this._Nop190_ProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariant.Entity = null;
						previousValue.Nop190_ProductVariant_Pricelist_Mappings.Remove(this);
					}
					this._Nop190_ProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariant_Pricelist_Mappings.Add(this);
						this._ProductVariantID = value.ProductVariantId;
					}
					else
					{
						this._ProductVariantID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductVariant_ProductAttribute_Mapping")]
	public partial class Nop190_ProductVariant_ProductAttribute_Mapping : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductVariantAttributeID;
		
		private int _ProductVariantID;
		
		private int _ProductAttributeID;
		
		private string _TextPrompt;
		
		private bool _IsRequired;
		
		private int _AttributeControlTypeID;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_ProductVariantAttributeValue> _Nop190_ProductVariantAttributeValues;
		
		private EntityRef<Nop190_ProductAttribute> _Nop190_ProductAttribute;
		
		private EntityRef<Nop190_ProductVariant> _Nop190_ProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductVariantAttributeIDChanging(int value);
    partial void OnProductVariantAttributeIDChanged();
    partial void OnProductVariantIDChanging(int value);
    partial void OnProductVariantIDChanged();
    partial void OnProductAttributeIDChanging(int value);
    partial void OnProductAttributeIDChanged();
    partial void OnTextPromptChanging(string value);
    partial void OnTextPromptChanged();
    partial void OnIsRequiredChanging(bool value);
    partial void OnIsRequiredChanged();
    partial void OnAttributeControlTypeIDChanging(int value);
    partial void OnAttributeControlTypeIDChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_ProductVariant_ProductAttribute_Mapping()
		{
			this._Nop190_ProductVariantAttributeValues = new EntitySet<Nop190_ProductVariantAttributeValue>(new Action<Nop190_ProductVariantAttributeValue>(this.attach_Nop190_ProductVariantAttributeValues), new Action<Nop190_ProductVariantAttributeValue>(this.detach_Nop190_ProductVariantAttributeValues));
			this._Nop190_ProductAttribute = default(EntityRef<Nop190_ProductAttribute>);
			this._Nop190_ProductVariant = default(EntityRef<Nop190_ProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantAttributeID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductVariantAttributeID
		{
			get
			{
				return this._ProductVariantAttributeID;
			}
			set
			{
				if ((this._ProductVariantAttributeID != value))
				{
					this.OnProductVariantAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantAttributeID = value;
					this.SendPropertyChanged("ProductVariantAttributeID");
					this.OnProductVariantAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantID", DbType="Int NOT NULL")]
		public int ProductVariantID
		{
			get
			{
				return this._ProductVariantID;
			}
			set
			{
				if ((this._ProductVariantID != value))
				{
					if (this._Nop190_ProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantID = value;
					this.SendPropertyChanged("ProductVariantID");
					this.OnProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductAttributeID", DbType="Int NOT NULL")]
		public int ProductAttributeID
		{
			get
			{
				return this._ProductAttributeID;
			}
			set
			{
				if ((this._ProductAttributeID != value))
				{
					if (this._Nop190_ProductAttribute.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._ProductAttributeID = value;
					this.SendPropertyChanged("ProductAttributeID");
					this.OnProductAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TextPrompt", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string TextPrompt
		{
			get
			{
				return this._TextPrompt;
			}
			set
			{
				if ((this._TextPrompt != value))
				{
					this.OnTextPromptChanging(value);
					this.SendPropertyChanging();
					this._TextPrompt = value;
					this.SendPropertyChanged("TextPrompt");
					this.OnTextPromptChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsRequired", DbType="Bit NOT NULL")]
		public bool IsRequired
		{
			get
			{
				return this._IsRequired;
			}
			set
			{
				if ((this._IsRequired != value))
				{
					this.OnIsRequiredChanging(value);
					this.SendPropertyChanging();
					this._IsRequired = value;
					this.SendPropertyChanged("IsRequired");
					this.OnIsRequiredChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AttributeControlTypeID", DbType="Int NOT NULL")]
		public int AttributeControlTypeID
		{
			get
			{
				return this._AttributeControlTypeID;
			}
			set
			{
				if ((this._AttributeControlTypeID != value))
				{
					this.OnAttributeControlTypeIDChanging(value);
					this.SendPropertyChanging();
					this._AttributeControlTypeID = value;
					this.SendPropertyChanged("AttributeControlTypeID");
					this.OnAttributeControlTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_ProductAttribute_Mapping_Nop190_ProductVariantAttributeValu" +
			"e", Storage="_Nop190_ProductVariantAttributeValues", ThisKey="ProductVariantAttributeID", OtherKey="ProductVariantAttributeID")]
		public EntitySet<Nop190_ProductVariantAttributeValue> Nop190_ProductVariantAttributeValues
		{
			get
			{
				return this._Nop190_ProductVariantAttributeValues;
			}
			set
			{
				this._Nop190_ProductVariantAttributeValues.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductAttribute_Nop190_ProductVariant_ProductAttribute_Mapping", Storage="_Nop190_ProductAttribute", ThisKey="ProductAttributeID", OtherKey="ProductAttributeID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductAttribute Nop190_ProductAttribute
		{
			get
			{
				return this._Nop190_ProductAttribute.Entity;
			}
			set
			{
				Nop190_ProductAttribute previousValue = this._Nop190_ProductAttribute.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductAttribute.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductAttribute.Entity = null;
						previousValue.Nop190_ProductVariant_ProductAttribute_Mappings.Remove(this);
					}
					this._Nop190_ProductAttribute.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariant_ProductAttribute_Mappings.Add(this);
						this._ProductAttributeID = value.ProductAttributeID;
					}
					else
					{
						this._ProductAttributeID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductAttribute");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ProductVariant_ProductAttribute_Mapping", Storage="_Nop190_ProductVariant", ThisKey="ProductVariantID", OtherKey="ProductVariantId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductVariant Nop190_ProductVariant
		{
			get
			{
				return this._Nop190_ProductVariant.Entity;
			}
			set
			{
				Nop190_ProductVariant previousValue = this._Nop190_ProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariant.Entity = null;
						previousValue.Nop190_ProductVariant_ProductAttribute_Mappings.Remove(this);
					}
					this._Nop190_ProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariant_ProductAttribute_Mappings.Add(this);
						this._ProductVariantID = value.ProductVariantId;
					}
					else
					{
						this._ProductVariantID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ProductVariantAttributeValues(Nop190_ProductVariantAttributeValue entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant_ProductAttribute_Mapping = this;
		}
		
		private void detach_Nop190_ProductVariantAttributeValues(Nop190_ProductVariantAttributeValue entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariant_ProductAttribute_Mapping = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductVariantAttributeCombination")]
	public partial class Nop190_ProductVariantAttributeCombination : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductVariantAttributeCombinationID;
		
		private int _ProductVariantID;
		
		private System.Xml.Linq.XElement _AttributesXML;
		
		private int _StockQuantity;
		
		private bool _AllowOutOfStockOrders;
		
		private EntityRef<Nop190_ProductVariant> _Nop190_ProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductVariantAttributeCombinationIDChanging(int value);
    partial void OnProductVariantAttributeCombinationIDChanged();
    partial void OnProductVariantIDChanging(int value);
    partial void OnProductVariantIDChanged();
    partial void OnAttributesXMLChanging(System.Xml.Linq.XElement value);
    partial void OnAttributesXMLChanged();
    partial void OnStockQuantityChanging(int value);
    partial void OnStockQuantityChanged();
    partial void OnAllowOutOfStockOrdersChanging(bool value);
    partial void OnAllowOutOfStockOrdersChanged();
    #endregion
		
		public Nop190_ProductVariantAttributeCombination()
		{
			this._Nop190_ProductVariant = default(EntityRef<Nop190_ProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantAttributeCombinationID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductVariantAttributeCombinationID
		{
			get
			{
				return this._ProductVariantAttributeCombinationID;
			}
			set
			{
				if ((this._ProductVariantAttributeCombinationID != value))
				{
					this.OnProductVariantAttributeCombinationIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantAttributeCombinationID = value;
					this.SendPropertyChanged("ProductVariantAttributeCombinationID");
					this.OnProductVariantAttributeCombinationIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantID", DbType="Int NOT NULL")]
		public int ProductVariantID
		{
			get
			{
				return this._ProductVariantID;
			}
			set
			{
				if ((this._ProductVariantID != value))
				{
					if (this._Nop190_ProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantID = value;
					this.SendPropertyChanged("ProductVariantID");
					this.OnProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AttributesXML", DbType="Xml NOT NULL", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
		public System.Xml.Linq.XElement AttributesXML
		{
			get
			{
				return this._AttributesXML;
			}
			set
			{
				if ((this._AttributesXML != value))
				{
					this.OnAttributesXMLChanging(value);
					this.SendPropertyChanging();
					this._AttributesXML = value;
					this.SendPropertyChanged("AttributesXML");
					this.OnAttributesXMLChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StockQuantity", DbType="Int NOT NULL")]
		public int StockQuantity
		{
			get
			{
				return this._StockQuantity;
			}
			set
			{
				if ((this._StockQuantity != value))
				{
					this.OnStockQuantityChanging(value);
					this.SendPropertyChanging();
					this._StockQuantity = value;
					this.SendPropertyChanged("StockQuantity");
					this.OnStockQuantityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AllowOutOfStockOrders", DbType="Bit NOT NULL")]
		public bool AllowOutOfStockOrders
		{
			get
			{
				return this._AllowOutOfStockOrders;
			}
			set
			{
				if ((this._AllowOutOfStockOrders != value))
				{
					this.OnAllowOutOfStockOrdersChanging(value);
					this.SendPropertyChanging();
					this._AllowOutOfStockOrders = value;
					this.SendPropertyChanged("AllowOutOfStockOrders");
					this.OnAllowOutOfStockOrdersChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ProductVariantAttributeCombination", Storage="_Nop190_ProductVariant", ThisKey="ProductVariantID", OtherKey="ProductVariantId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductVariant Nop190_ProductVariant
		{
			get
			{
				return this._Nop190_ProductVariant.Entity;
			}
			set
			{
				Nop190_ProductVariant previousValue = this._Nop190_ProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariant.Entity = null;
						previousValue.Nop190_ProductVariantAttributeCombinations.Remove(this);
					}
					this._Nop190_ProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariantAttributeCombinations.Add(this);
						this._ProductVariantID = value.ProductVariantId;
					}
					else
					{
						this._ProductVariantID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductVariantAttributeValue")]
	public partial class Nop190_ProductVariantAttributeValue : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductVariantAttributeValueID;
		
		private int _ProductVariantAttributeID;
		
		private string _Name;
		
		private decimal _PriceAdjustment;
		
		private decimal _WeightAdjustment;
		
		private bool _IsPreSelected;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_ProductVariantAttributeValueLocalized> _Nop190_ProductVariantAttributeValueLocalizeds;
		
		private EntityRef<Nop190_ProductVariant_ProductAttribute_Mapping> _Nop190_ProductVariant_ProductAttribute_Mapping;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductVariantAttributeValueIDChanging(int value);
    partial void OnProductVariantAttributeValueIDChanged();
    partial void OnProductVariantAttributeIDChanging(int value);
    partial void OnProductVariantAttributeIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnPriceAdjustmentChanging(decimal value);
    partial void OnPriceAdjustmentChanged();
    partial void OnWeightAdjustmentChanging(decimal value);
    partial void OnWeightAdjustmentChanged();
    partial void OnIsPreSelectedChanging(bool value);
    partial void OnIsPreSelectedChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_ProductVariantAttributeValue()
		{
			this._Nop190_ProductVariantAttributeValueLocalizeds = new EntitySet<Nop190_ProductVariantAttributeValueLocalized>(new Action<Nop190_ProductVariantAttributeValueLocalized>(this.attach_Nop190_ProductVariantAttributeValueLocalizeds), new Action<Nop190_ProductVariantAttributeValueLocalized>(this.detach_Nop190_ProductVariantAttributeValueLocalizeds));
			this._Nop190_ProductVariant_ProductAttribute_Mapping = default(EntityRef<Nop190_ProductVariant_ProductAttribute_Mapping>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantAttributeValueID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductVariantAttributeValueID
		{
			get
			{
				return this._ProductVariantAttributeValueID;
			}
			set
			{
				if ((this._ProductVariantAttributeValueID != value))
				{
					this.OnProductVariantAttributeValueIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantAttributeValueID = value;
					this.SendPropertyChanged("ProductVariantAttributeValueID");
					this.OnProductVariantAttributeValueIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantAttributeID", DbType="Int NOT NULL")]
		public int ProductVariantAttributeID
		{
			get
			{
				return this._ProductVariantAttributeID;
			}
			set
			{
				if ((this._ProductVariantAttributeID != value))
				{
					if (this._Nop190_ProductVariant_ProductAttribute_Mapping.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantAttributeID = value;
					this.SendPropertyChanged("ProductVariantAttributeID");
					this.OnProductVariantAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriceAdjustment", DbType="Money NOT NULL")]
		public decimal PriceAdjustment
		{
			get
			{
				return this._PriceAdjustment;
			}
			set
			{
				if ((this._PriceAdjustment != value))
				{
					this.OnPriceAdjustmentChanging(value);
					this.SendPropertyChanging();
					this._PriceAdjustment = value;
					this.SendPropertyChanged("PriceAdjustment");
					this.OnPriceAdjustmentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WeightAdjustment", DbType="Decimal(18,4) NOT NULL")]
		public decimal WeightAdjustment
		{
			get
			{
				return this._WeightAdjustment;
			}
			set
			{
				if ((this._WeightAdjustment != value))
				{
					this.OnWeightAdjustmentChanging(value);
					this.SendPropertyChanging();
					this._WeightAdjustment = value;
					this.SendPropertyChanged("WeightAdjustment");
					this.OnWeightAdjustmentChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsPreSelected", DbType="Bit NOT NULL")]
		public bool IsPreSelected
		{
			get
			{
				return this._IsPreSelected;
			}
			set
			{
				if ((this._IsPreSelected != value))
				{
					this.OnIsPreSelectedChanging(value);
					this.SendPropertyChanging();
					this._IsPreSelected = value;
					this.SendPropertyChanged("IsPreSelected");
					this.OnIsPreSelectedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariantAttributeValue_Nop190_ProductVariantAttributeValueLocalized", Storage="_Nop190_ProductVariantAttributeValueLocalizeds", ThisKey="ProductVariantAttributeValueID", OtherKey="ProductVariantAttributeValueID")]
		public EntitySet<Nop190_ProductVariantAttributeValueLocalized> Nop190_ProductVariantAttributeValueLocalizeds
		{
			get
			{
				return this._Nop190_ProductVariantAttributeValueLocalizeds;
			}
			set
			{
				this._Nop190_ProductVariantAttributeValueLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_ProductAttribute_Mapping_Nop190_ProductVariantAttributeValu" +
			"e", Storage="_Nop190_ProductVariant_ProductAttribute_Mapping", ThisKey="ProductVariantAttributeID", OtherKey="ProductVariantAttributeID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductVariant_ProductAttribute_Mapping Nop190_ProductVariant_ProductAttribute_Mapping
		{
			get
			{
				return this._Nop190_ProductVariant_ProductAttribute_Mapping.Entity;
			}
			set
			{
				Nop190_ProductVariant_ProductAttribute_Mapping previousValue = this._Nop190_ProductVariant_ProductAttribute_Mapping.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariant_ProductAttribute_Mapping.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariant_ProductAttribute_Mapping.Entity = null;
						previousValue.Nop190_ProductVariantAttributeValues.Remove(this);
					}
					this._Nop190_ProductVariant_ProductAttribute_Mapping.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariantAttributeValues.Add(this);
						this._ProductVariantAttributeID = value.ProductVariantAttributeID;
					}
					else
					{
						this._ProductVariantAttributeID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariant_ProductAttribute_Mapping");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ProductVariantAttributeValueLocalizeds(Nop190_ProductVariantAttributeValueLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariantAttributeValue = this;
		}
		
		private void detach_Nop190_ProductVariantAttributeValueLocalizeds(Nop190_ProductVariantAttributeValueLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ProductVariantAttributeValue = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductVariantAttributeValueLocalized")]
	public partial class Nop190_ProductVariantAttributeValueLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductVariantAttributeValueLocalizedID;
		
		private int _ProductVariantAttributeValueID;
		
		private int _LanguageID;
		
		private string _Name;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
		private EntityRef<Nop190_ProductVariantAttributeValue> _Nop190_ProductVariantAttributeValue;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductVariantAttributeValueLocalizedIDChanging(int value);
    partial void OnProductVariantAttributeValueLocalizedIDChanged();
    partial void OnProductVariantAttributeValueIDChanging(int value);
    partial void OnProductVariantAttributeValueIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    #endregion
		
		public Nop190_ProductVariantAttributeValueLocalized()
		{
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			this._Nop190_ProductVariantAttributeValue = default(EntityRef<Nop190_ProductVariantAttributeValue>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantAttributeValueLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductVariantAttributeValueLocalizedID
		{
			get
			{
				return this._ProductVariantAttributeValueLocalizedID;
			}
			set
			{
				if ((this._ProductVariantAttributeValueLocalizedID != value))
				{
					this.OnProductVariantAttributeValueLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantAttributeValueLocalizedID = value;
					this.SendPropertyChanged("ProductVariantAttributeValueLocalizedID");
					this.OnProductVariantAttributeValueLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantAttributeValueID", DbType="Int NOT NULL")]
		public int ProductVariantAttributeValueID
		{
			get
			{
				return this._ProductVariantAttributeValueID;
			}
			set
			{
				if ((this._ProductVariantAttributeValueID != value))
				{
					if (this._Nop190_ProductVariantAttributeValue.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantAttributeValueIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantAttributeValueID = value;
					this.SendPropertyChanged("ProductVariantAttributeValueID");
					this.OnProductVariantAttributeValueIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_ProductVariantAttributeValueLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_ProductVariantAttributeValueLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariantAttributeValueLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariantAttributeValue_Nop190_ProductVariantAttributeValueLocalized", Storage="_Nop190_ProductVariantAttributeValue", ThisKey="ProductVariantAttributeValueID", OtherKey="ProductVariantAttributeValueID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductVariantAttributeValue Nop190_ProductVariantAttributeValue
		{
			get
			{
				return this._Nop190_ProductVariantAttributeValue.Entity;
			}
			set
			{
				Nop190_ProductVariantAttributeValue previousValue = this._Nop190_ProductVariantAttributeValue.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariantAttributeValue.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariantAttributeValue.Entity = null;
						previousValue.Nop190_ProductVariantAttributeValueLocalizeds.Remove(this);
					}
					this._Nop190_ProductVariantAttributeValue.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariantAttributeValueLocalizeds.Add(this);
						this._ProductVariantAttributeValueID = value.ProductVariantAttributeValueID;
					}
					else
					{
						this._ProductVariantAttributeValueID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariantAttributeValue");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ProductVariantLocalized")]
	public partial class Nop190_ProductVariantLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ProductVariantLocalizedID;
		
		private int _ProductVariantID;
		
		private int _LanguageID;
		
		private string _Name;
		
		private string _Description;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
		private EntityRef<Nop190_ProductVariant> _Nop190_ProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnProductVariantLocalizedIDChanging(int value);
    partial void OnProductVariantLocalizedIDChanged();
    partial void OnProductVariantIDChanging(int value);
    partial void OnProductVariantIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    #endregion
		
		public Nop190_ProductVariantLocalized()
		{
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			this._Nop190_ProductVariant = default(EntityRef<Nop190_ProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ProductVariantLocalizedID
		{
			get
			{
				return this._ProductVariantLocalizedID;
			}
			set
			{
				if ((this._ProductVariantLocalizedID != value))
				{
					this.OnProductVariantLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantLocalizedID = value;
					this.SendPropertyChanged("ProductVariantLocalizedID");
					this.OnProductVariantLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantID", DbType="Int NOT NULL")]
		public int ProductVariantID
		{
			get
			{
				return this._ProductVariantID;
			}
			set
			{
				if ((this._ProductVariantID != value))
				{
					if (this._Nop190_ProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantID = value;
					this.SendPropertyChanged("ProductVariantID");
					this.OnProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_ProductVariantLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_ProductVariantLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariantLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ProductVariantLocalized", Storage="_Nop190_ProductVariant", ThisKey="ProductVariantID", OtherKey="ProductVariantId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductVariant Nop190_ProductVariant
		{
			get
			{
				return this._Nop190_ProductVariant.Entity;
			}
			set
			{
				Nop190_ProductVariant previousValue = this._Nop190_ProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariant.Entity = null;
						previousValue.Nop190_ProductVariantLocalizeds.Remove(this);
					}
					this._Nop190_ProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_ProductVariantLocalizeds.Add(this);
						this._ProductVariantID = value.ProductVariantId;
					}
					else
					{
						this._ProductVariantID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_QBEntity")]
	public partial class Nop190_QBEntity : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _EntityId;
		
		private string _QBEntityId;
		
		private int _EntityTypeId;
		
		private int _NopEntityId;
		
		private int _SynStateId;
		
		private string _SeqNum;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnEntityIdChanging(int value);
    partial void OnEntityIdChanged();
    partial void OnQBEntityIdChanging(string value);
    partial void OnQBEntityIdChanged();
    partial void OnEntityTypeIdChanging(int value);
    partial void OnEntityTypeIdChanged();
    partial void OnNopEntityIdChanging(int value);
    partial void OnNopEntityIdChanged();
    partial void OnSynStateIdChanging(int value);
    partial void OnSynStateIdChanged();
    partial void OnSeqNumChanging(string value);
    partial void OnSeqNumChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_QBEntity()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EntityId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int EntityId
		{
			get
			{
				return this._EntityId;
			}
			set
			{
				if ((this._EntityId != value))
				{
					this.OnEntityIdChanging(value);
					this.SendPropertyChanging();
					this._EntityId = value;
					this.SendPropertyChanged("EntityId");
					this.OnEntityIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QBEntityId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string QBEntityId
		{
			get
			{
				return this._QBEntityId;
			}
			set
			{
				if ((this._QBEntityId != value))
				{
					this.OnQBEntityIdChanging(value);
					this.SendPropertyChanging();
					this._QBEntityId = value;
					this.SendPropertyChanged("QBEntityId");
					this.OnQBEntityIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EntityTypeId", DbType="Int NOT NULL")]
		public int EntityTypeId
		{
			get
			{
				return this._EntityTypeId;
			}
			set
			{
				if ((this._EntityTypeId != value))
				{
					this.OnEntityTypeIdChanging(value);
					this.SendPropertyChanging();
					this._EntityTypeId = value;
					this.SendPropertyChanged("EntityTypeId");
					this.OnEntityTypeIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NopEntityId", DbType="Int NOT NULL")]
		public int NopEntityId
		{
			get
			{
				return this._NopEntityId;
			}
			set
			{
				if ((this._NopEntityId != value))
				{
					this.OnNopEntityIdChanging(value);
					this.SendPropertyChanging();
					this._NopEntityId = value;
					this.SendPropertyChanged("NopEntityId");
					this.OnNopEntityIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SynStateId", DbType="Int NOT NULL")]
		public int SynStateId
		{
			get
			{
				return this._SynStateId;
			}
			set
			{
				if ((this._SynStateId != value))
				{
					this.OnSynStateIdChanging(value);
					this.SendPropertyChanging();
					this._SynStateId = value;
					this.SendPropertyChanged("SynStateId");
					this.OnSynStateIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SeqNum", DbType="NVarChar(20) NOT NULL", CanBeNull=false)]
		public string SeqNum
		{
			get
			{
				return this._SeqNum;
			}
			set
			{
				if ((this._SeqNum != value))
				{
					this.OnSeqNumChanging(value);
					this.SendPropertyChanging();
					this._SeqNum = value;
					this.SendPropertyChanged("SeqNum");
					this.OnSeqNumChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_QueuedEmail")]
	public partial class Nop190_QueuedEmail : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _QueuedEmailID;
		
		private int _Priority;
		
		private string _From;
		
		private string _FromName;
		
		private string _To;
		
		private string _ToName;
		
		private string _Cc;
		
		private string _Bcc;
		
		private string _Subject;
		
		private string _Body;
		
		private System.DateTime _CreatedOn;
		
		private int _SendTries;
		
		private System.Nullable<System.DateTime> _SentOn;
		
		private int _EmailAccountId;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnQueuedEmailIDChanging(int value);
    partial void OnQueuedEmailIDChanged();
    partial void OnPriorityChanging(int value);
    partial void OnPriorityChanged();
    partial void OnFromChanging(string value);
    partial void OnFromChanged();
    partial void OnFromNameChanging(string value);
    partial void OnFromNameChanged();
    partial void OnToChanging(string value);
    partial void OnToChanged();
    partial void OnToNameChanging(string value);
    partial void OnToNameChanged();
    partial void OnCcChanging(string value);
    partial void OnCcChanged();
    partial void OnBccChanging(string value);
    partial void OnBccChanged();
    partial void OnSubjectChanging(string value);
    partial void OnSubjectChanged();
    partial void OnBodyChanging(string value);
    partial void OnBodyChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnSendTriesChanging(int value);
    partial void OnSendTriesChanged();
    partial void OnSentOnChanging(System.Nullable<System.DateTime> value);
    partial void OnSentOnChanged();
    partial void OnEmailAccountIdChanging(int value);
    partial void OnEmailAccountIdChanged();
    #endregion
		
		public Nop190_QueuedEmail()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QueuedEmailID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int QueuedEmailID
		{
			get
			{
				return this._QueuedEmailID;
			}
			set
			{
				if ((this._QueuedEmailID != value))
				{
					this.OnQueuedEmailIDChanging(value);
					this.SendPropertyChanging();
					this._QueuedEmailID = value;
					this.SendPropertyChanged("QueuedEmailID");
					this.OnQueuedEmailIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Priority", DbType="Int NOT NULL")]
		public int Priority
		{
			get
			{
				return this._Priority;
			}
			set
			{
				if ((this._Priority != value))
				{
					this.OnPriorityChanging(value);
					this.SendPropertyChanging();
					this._Priority = value;
					this.SendPropertyChanged("Priority");
					this.OnPriorityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[From]", Storage="_From", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string From
		{
			get
			{
				return this._From;
			}
			set
			{
				if ((this._From != value))
				{
					this.OnFromChanging(value);
					this.SendPropertyChanging();
					this._From = value;
					this.SendPropertyChanged("From");
					this.OnFromChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FromName", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string FromName
		{
			get
			{
				return this._FromName;
			}
			set
			{
				if ((this._FromName != value))
				{
					this.OnFromNameChanging(value);
					this.SendPropertyChanging();
					this._FromName = value;
					this.SendPropertyChanged("FromName");
					this.OnFromNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[To]", Storage="_To", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string To
		{
			get
			{
				return this._To;
			}
			set
			{
				if ((this._To != value))
				{
					this.OnToChanging(value);
					this.SendPropertyChanging();
					this._To = value;
					this.SendPropertyChanged("To");
					this.OnToChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ToName", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string ToName
		{
			get
			{
				return this._ToName;
			}
			set
			{
				if ((this._ToName != value))
				{
					this.OnToNameChanging(value);
					this.SendPropertyChanging();
					this._ToName = value;
					this.SendPropertyChanged("ToName");
					this.OnToNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Cc", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string Cc
		{
			get
			{
				return this._Cc;
			}
			set
			{
				if ((this._Cc != value))
				{
					this.OnCcChanging(value);
					this.SendPropertyChanging();
					this._Cc = value;
					this.SendPropertyChanged("Cc");
					this.OnCcChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Bcc", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string Bcc
		{
			get
			{
				return this._Bcc;
			}
			set
			{
				if ((this._Bcc != value))
				{
					this.OnBccChanging(value);
					this.SendPropertyChanging();
					this._Bcc = value;
					this.SendPropertyChanged("Bcc");
					this.OnBccChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Subject", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string Subject
		{
			get
			{
				return this._Subject;
			}
			set
			{
				if ((this._Subject != value))
				{
					this.OnSubjectChanging(value);
					this.SendPropertyChanging();
					this._Subject = value;
					this.SendPropertyChanged("Subject");
					this.OnSubjectChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Body", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Body
		{
			get
			{
				return this._Body;
			}
			set
			{
				if ((this._Body != value))
				{
					this.OnBodyChanging(value);
					this.SendPropertyChanging();
					this._Body = value;
					this.SendPropertyChanged("Body");
					this.OnBodyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SendTries", DbType="Int NOT NULL")]
		public int SendTries
		{
			get
			{
				return this._SendTries;
			}
			set
			{
				if ((this._SendTries != value))
				{
					this.OnSendTriesChanging(value);
					this.SendPropertyChanging();
					this._SendTries = value;
					this.SendPropertyChanged("SendTries");
					this.OnSendTriesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SentOn", DbType="DateTime")]
		public System.Nullable<System.DateTime> SentOn
		{
			get
			{
				return this._SentOn;
			}
			set
			{
				if ((this._SentOn != value))
				{
					this.OnSentOnChanging(value);
					this.SendPropertyChanging();
					this._SentOn = value;
					this.SendPropertyChanged("SentOn");
					this.OnSentOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EmailAccountId", DbType="Int NOT NULL")]
		public int EmailAccountId
		{
			get
			{
				return this._EmailAccountId;
			}
			set
			{
				if ((this._EmailAccountId != value))
				{
					this.OnEmailAccountIdChanging(value);
					this.SendPropertyChanging();
					this._EmailAccountId = value;
					this.SendPropertyChanged("EmailAccountId");
					this.OnEmailAccountIdChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_RecurringPayment")]
	public partial class Nop190_RecurringPayment : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _RecurringPaymentID;
		
		private int _InitialOrderID;
		
		private int _CycleLength;
		
		private int _CyclePeriod;
		
		private int _TotalCycles;
		
		private System.DateTime _StartDate;
		
		private bool _IsActive;
		
		private bool _Deleted;
		
		private System.DateTime _CreatedOn;
		
		private EntitySet<Nop190_RecurringPaymentHistory> _Nop190_RecurringPaymentHistories;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnRecurringPaymentIDChanging(int value);
    partial void OnRecurringPaymentIDChanged();
    partial void OnInitialOrderIDChanging(int value);
    partial void OnInitialOrderIDChanged();
    partial void OnCycleLengthChanging(int value);
    partial void OnCycleLengthChanged();
    partial void OnCyclePeriodChanging(int value);
    partial void OnCyclePeriodChanged();
    partial void OnTotalCyclesChanging(int value);
    partial void OnTotalCyclesChanged();
    partial void OnStartDateChanging(System.DateTime value);
    partial void OnStartDateChanged();
    partial void OnIsActiveChanging(bool value);
    partial void OnIsActiveChanged();
    partial void OnDeletedChanging(bool value);
    partial void OnDeletedChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_RecurringPayment()
		{
			this._Nop190_RecurringPaymentHistories = new EntitySet<Nop190_RecurringPaymentHistory>(new Action<Nop190_RecurringPaymentHistory>(this.attach_Nop190_RecurringPaymentHistories), new Action<Nop190_RecurringPaymentHistory>(this.detach_Nop190_RecurringPaymentHistories));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RecurringPaymentID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int RecurringPaymentID
		{
			get
			{
				return this._RecurringPaymentID;
			}
			set
			{
				if ((this._RecurringPaymentID != value))
				{
					this.OnRecurringPaymentIDChanging(value);
					this.SendPropertyChanging();
					this._RecurringPaymentID = value;
					this.SendPropertyChanged("RecurringPaymentID");
					this.OnRecurringPaymentIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InitialOrderID", DbType="Int NOT NULL")]
		public int InitialOrderID
		{
			get
			{
				return this._InitialOrderID;
			}
			set
			{
				if ((this._InitialOrderID != value))
				{
					this.OnInitialOrderIDChanging(value);
					this.SendPropertyChanging();
					this._InitialOrderID = value;
					this.SendPropertyChanged("InitialOrderID");
					this.OnInitialOrderIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CycleLength", DbType="Int NOT NULL")]
		public int CycleLength
		{
			get
			{
				return this._CycleLength;
			}
			set
			{
				if ((this._CycleLength != value))
				{
					this.OnCycleLengthChanging(value);
					this.SendPropertyChanging();
					this._CycleLength = value;
					this.SendPropertyChanged("CycleLength");
					this.OnCycleLengthChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CyclePeriod", DbType="Int NOT NULL")]
		public int CyclePeriod
		{
			get
			{
				return this._CyclePeriod;
			}
			set
			{
				if ((this._CyclePeriod != value))
				{
					this.OnCyclePeriodChanging(value);
					this.SendPropertyChanging();
					this._CyclePeriod = value;
					this.SendPropertyChanged("CyclePeriod");
					this.OnCyclePeriodChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalCycles", DbType="Int NOT NULL")]
		public int TotalCycles
		{
			get
			{
				return this._TotalCycles;
			}
			set
			{
				if ((this._TotalCycles != value))
				{
					this.OnTotalCyclesChanging(value);
					this.SendPropertyChanging();
					this._TotalCycles = value;
					this.SendPropertyChanged("TotalCycles");
					this.OnTotalCyclesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StartDate", DbType="DateTime NOT NULL")]
		public System.DateTime StartDate
		{
			get
			{
				return this._StartDate;
			}
			set
			{
				if ((this._StartDate != value))
				{
					this.OnStartDateChanging(value);
					this.SendPropertyChanging();
					this._StartDate = value;
					this.SendPropertyChanged("StartDate");
					this.OnStartDateChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsActive", DbType="Bit NOT NULL")]
		public bool IsActive
		{
			get
			{
				return this._IsActive;
			}
			set
			{
				if ((this._IsActive != value))
				{
					this.OnIsActiveChanging(value);
					this.SendPropertyChanging();
					this._IsActive = value;
					this.SendPropertyChanged("IsActive");
					this.OnIsActiveChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Deleted", DbType="Bit NOT NULL")]
		public bool Deleted
		{
			get
			{
				return this._Deleted;
			}
			set
			{
				if ((this._Deleted != value))
				{
					this.OnDeletedChanging(value);
					this.SendPropertyChanging();
					this._Deleted = value;
					this.SendPropertyChanged("Deleted");
					this.OnDeletedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_RecurringPayment_Nop190_RecurringPaymentHistory", Storage="_Nop190_RecurringPaymentHistories", ThisKey="RecurringPaymentID", OtherKey="RecurringPaymentID")]
		public EntitySet<Nop190_RecurringPaymentHistory> Nop190_RecurringPaymentHistories
		{
			get
			{
				return this._Nop190_RecurringPaymentHistories;
			}
			set
			{
				this._Nop190_RecurringPaymentHistories.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_RecurringPaymentHistories(Nop190_RecurringPaymentHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_RecurringPayment = this;
		}
		
		private void detach_Nop190_RecurringPaymentHistories(Nop190_RecurringPaymentHistory entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_RecurringPayment = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_RecurringPaymentHistory")]
	public partial class Nop190_RecurringPaymentHistory : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _RecurringPaymentHistoryID;
		
		private int _RecurringPaymentID;
		
		private int _OrderID;
		
		private System.DateTime _CreatedOn;
		
		private EntityRef<Nop190_RecurringPayment> _Nop190_RecurringPayment;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnRecurringPaymentHistoryIDChanging(int value);
    partial void OnRecurringPaymentHistoryIDChanged();
    partial void OnRecurringPaymentIDChanging(int value);
    partial void OnRecurringPaymentIDChanged();
    partial void OnOrderIDChanging(int value);
    partial void OnOrderIDChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_RecurringPaymentHistory()
		{
			this._Nop190_RecurringPayment = default(EntityRef<Nop190_RecurringPayment>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RecurringPaymentHistoryID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int RecurringPaymentHistoryID
		{
			get
			{
				return this._RecurringPaymentHistoryID;
			}
			set
			{
				if ((this._RecurringPaymentHistoryID != value))
				{
					this.OnRecurringPaymentHistoryIDChanging(value);
					this.SendPropertyChanging();
					this._RecurringPaymentHistoryID = value;
					this.SendPropertyChanged("RecurringPaymentHistoryID");
					this.OnRecurringPaymentHistoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RecurringPaymentID", DbType="Int NOT NULL")]
		public int RecurringPaymentID
		{
			get
			{
				return this._RecurringPaymentID;
			}
			set
			{
				if ((this._RecurringPaymentID != value))
				{
					if (this._Nop190_RecurringPayment.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnRecurringPaymentIDChanging(value);
					this.SendPropertyChanging();
					this._RecurringPaymentID = value;
					this.SendPropertyChanged("RecurringPaymentID");
					this.OnRecurringPaymentIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderID", DbType="Int NOT NULL")]
		public int OrderID
		{
			get
			{
				return this._OrderID;
			}
			set
			{
				if ((this._OrderID != value))
				{
					this.OnOrderIDChanging(value);
					this.SendPropertyChanging();
					this._OrderID = value;
					this.SendPropertyChanged("OrderID");
					this.OnOrderIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_RecurringPayment_Nop190_RecurringPaymentHistory", Storage="_Nop190_RecurringPayment", ThisKey="RecurringPaymentID", OtherKey="RecurringPaymentID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_RecurringPayment Nop190_RecurringPayment
		{
			get
			{
				return this._Nop190_RecurringPayment.Entity;
			}
			set
			{
				Nop190_RecurringPayment previousValue = this._Nop190_RecurringPayment.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_RecurringPayment.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_RecurringPayment.Entity = null;
						previousValue.Nop190_RecurringPaymentHistories.Remove(this);
					}
					this._Nop190_RecurringPayment.Entity = value;
					if ((value != null))
					{
						value.Nop190_RecurringPaymentHistories.Add(this);
						this._RecurringPaymentID = value.RecurringPaymentID;
					}
					else
					{
						this._RecurringPaymentID = default(int);
					}
					this.SendPropertyChanged("Nop190_RecurringPayment");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_RelatedProduct")]
	public partial class Nop190_RelatedProduct : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _RelatedProductID;
		
		private int _ProductID1;
		
		private int _ProductID2;
		
		private int _DisplayOrder;
		
		private EntityRef<Nop190_Product> _Nop190_Product;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnRelatedProductIDChanging(int value);
    partial void OnRelatedProductIDChanged();
    partial void OnProductID1Changing(int value);
    partial void OnProductID1Changed();
    partial void OnProductID2Changing(int value);
    partial void OnProductID2Changed();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_RelatedProduct()
		{
			this._Nop190_Product = default(EntityRef<Nop190_Product>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RelatedProductID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int RelatedProductID
		{
			get
			{
				return this._RelatedProductID;
			}
			set
			{
				if ((this._RelatedProductID != value))
				{
					this.OnRelatedProductIDChanging(value);
					this.SendPropertyChanging();
					this._RelatedProductID = value;
					this.SendPropertyChanged("RelatedProductID");
					this.OnRelatedProductIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID1", DbType="Int NOT NULL")]
		public int ProductID1
		{
			get
			{
				return this._ProductID1;
			}
			set
			{
				if ((this._ProductID1 != value))
				{
					if (this._Nop190_Product.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductID1Changing(value);
					this.SendPropertyChanging();
					this._ProductID1 = value;
					this.SendPropertyChanged("ProductID1");
					this.OnProductID1Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID2", DbType="Int NOT NULL")]
		public int ProductID2
		{
			get
			{
				return this._ProductID2;
			}
			set
			{
				if ((this._ProductID2 != value))
				{
					this.OnProductID2Changing(value);
					this.SendPropertyChanging();
					this._ProductID2 = value;
					this.SendPropertyChanged("ProductID2");
					this.OnProductID2Changed();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Product_Nop190_RelatedProduct", Storage="_Nop190_Product", ThisKey="ProductID1", OtherKey="ProductId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Product Nop190_Product
		{
			get
			{
				return this._Nop190_Product.Entity;
			}
			set
			{
				Nop190_Product previousValue = this._Nop190_Product.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Product.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Product.Entity = null;
						previousValue.Nop190_RelatedProducts.Remove(this);
					}
					this._Nop190_Product.Entity = value;
					if ((value != null))
					{
						value.Nop190_RelatedProducts.Add(this);
						this._ProductID1 = value.ProductId;
					}
					else
					{
						this._ProductID1 = default(int);
					}
					this.SendPropertyChanged("Nop190_Product");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ReturnRequest")]
	public partial class Nop190_ReturnRequest : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ReturnRequestId;
		
		private int _OrderProductVariantId;
		
		private int _Quantity;
		
		private int _CustomerId;
		
		private string _ReasonForReturn;
		
		private string _RequestedAction;
		
		private string _CustomerComments;
		
		private string _StaffNotes;
		
		private int _ReturnStatusId;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
		private EntityRef<Nop190_OrderProductVariant> _Nop190_OrderProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnReturnRequestIdChanging(int value);
    partial void OnReturnRequestIdChanged();
    partial void OnOrderProductVariantIdChanging(int value);
    partial void OnOrderProductVariantIdChanged();
    partial void OnQuantityChanging(int value);
    partial void OnQuantityChanged();
    partial void OnCustomerIdChanging(int value);
    partial void OnCustomerIdChanged();
    partial void OnReasonForReturnChanging(string value);
    partial void OnReasonForReturnChanged();
    partial void OnRequestedActionChanging(string value);
    partial void OnRequestedActionChanged();
    partial void OnCustomerCommentsChanging(string value);
    partial void OnCustomerCommentsChanged();
    partial void OnStaffNotesChanging(string value);
    partial void OnStaffNotesChanged();
    partial void OnReturnStatusIdChanging(int value);
    partial void OnReturnStatusIdChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_ReturnRequest()
		{
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			this._Nop190_OrderProductVariant = default(EntityRef<Nop190_OrderProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ReturnRequestId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ReturnRequestId
		{
			get
			{
				return this._ReturnRequestId;
			}
			set
			{
				if ((this._ReturnRequestId != value))
				{
					this.OnReturnRequestIdChanging(value);
					this.SendPropertyChanging();
					this._ReturnRequestId = value;
					this.SendPropertyChanged("ReturnRequestId");
					this.OnReturnRequestIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderProductVariantId", DbType="Int NOT NULL")]
		public int OrderProductVariantId
		{
			get
			{
				return this._OrderProductVariantId;
			}
			set
			{
				if ((this._OrderProductVariantId != value))
				{
					if (this._Nop190_OrderProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnOrderProductVariantIdChanging(value);
					this.SendPropertyChanging();
					this._OrderProductVariantId = value;
					this.SendPropertyChanged("OrderProductVariantId");
					this.OnOrderProductVariantIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Quantity", DbType="Int NOT NULL")]
		public int Quantity
		{
			get
			{
				return this._Quantity;
			}
			set
			{
				if ((this._Quantity != value))
				{
					this.OnQuantityChanging(value);
					this.SendPropertyChanging();
					this._Quantity = value;
					this.SendPropertyChanged("Quantity");
					this.OnQuantityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerId", DbType="Int NOT NULL")]
		public int CustomerId
		{
			get
			{
				return this._CustomerId;
			}
			set
			{
				if ((this._CustomerId != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerIdChanging(value);
					this.SendPropertyChanging();
					this._CustomerId = value;
					this.SendPropertyChanged("CustomerId");
					this.OnCustomerIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ReasonForReturn", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string ReasonForReturn
		{
			get
			{
				return this._ReasonForReturn;
			}
			set
			{
				if ((this._ReasonForReturn != value))
				{
					this.OnReasonForReturnChanging(value);
					this.SendPropertyChanging();
					this._ReasonForReturn = value;
					this.SendPropertyChanged("ReasonForReturn");
					this.OnReasonForReturnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RequestedAction", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string RequestedAction
		{
			get
			{
				return this._RequestedAction;
			}
			set
			{
				if ((this._RequestedAction != value))
				{
					this.OnRequestedActionChanging(value);
					this.SendPropertyChanging();
					this._RequestedAction = value;
					this.SendPropertyChanged("RequestedAction");
					this.OnRequestedActionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerComments", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string CustomerComments
		{
			get
			{
				return this._CustomerComments;
			}
			set
			{
				if ((this._CustomerComments != value))
				{
					this.OnCustomerCommentsChanging(value);
					this.SendPropertyChanging();
					this._CustomerComments = value;
					this.SendPropertyChanged("CustomerComments");
					this.OnCustomerCommentsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StaffNotes", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string StaffNotes
		{
			get
			{
				return this._StaffNotes;
			}
			set
			{
				if ((this._StaffNotes != value))
				{
					this.OnStaffNotesChanging(value);
					this.SendPropertyChanging();
					this._StaffNotes = value;
					this.SendPropertyChanged("StaffNotes");
					this.OnStaffNotesChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ReturnStatusId", DbType="Int NOT NULL")]
		public int ReturnStatusId
		{
			get
			{
				return this._ReturnStatusId;
			}
			set
			{
				if ((this._ReturnStatusId != value))
				{
					this.OnReturnStatusIdChanging(value);
					this.SendPropertyChanging();
					this._ReturnStatusId = value;
					this.SendPropertyChanged("ReturnStatusId");
					this.OnReturnStatusIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_ReturnRequest", Storage="_Nop190_Customer", ThisKey="CustomerId", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_ReturnRequests.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_ReturnRequests.Add(this);
						this._CustomerId = value.CustomerID;
					}
					else
					{
						this._CustomerId = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_OrderProductVariant_Nop190_ReturnRequest", Storage="_Nop190_OrderProductVariant", ThisKey="OrderProductVariantId", OtherKey="OrderProductVariantID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_OrderProductVariant Nop190_OrderProductVariant
		{
			get
			{
				return this._Nop190_OrderProductVariant.Entity;
			}
			set
			{
				Nop190_OrderProductVariant previousValue = this._Nop190_OrderProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_OrderProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_OrderProductVariant.Entity = null;
						previousValue.Nop190_ReturnRequests.Remove(this);
					}
					this._Nop190_OrderProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_ReturnRequests.Add(this);
						this._OrderProductVariantId = value.OrderProductVariantID;
					}
					else
					{
						this._OrderProductVariantId = default(int);
					}
					this.SendPropertyChanged("Nop190_OrderProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_RewardPointsHistory")]
	public partial class Nop190_RewardPointsHistory : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _RewardPointsHistoryID;
		
		private int _CustomerID;
		
		private int _OrderID;
		
		private int _Points;
		
		private int _PointsBalance;
		
		private decimal _UsedAmount;
		
		private decimal _UsedAmountInCustomerCurrency;
		
		private string _CustomerCurrencyCode;
		
		private string _Message;
		
		private System.DateTime _CreatedOn;
		
		private EntityRef<Nop190_Customer> _Nop190_Customer;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnRewardPointsHistoryIDChanging(int value);
    partial void OnRewardPointsHistoryIDChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnOrderIDChanging(int value);
    partial void OnOrderIDChanged();
    partial void OnPointsChanging(int value);
    partial void OnPointsChanged();
    partial void OnPointsBalanceChanging(int value);
    partial void OnPointsBalanceChanged();
    partial void OnUsedAmountChanging(decimal value);
    partial void OnUsedAmountChanged();
    partial void OnUsedAmountInCustomerCurrencyChanging(decimal value);
    partial void OnUsedAmountInCustomerCurrencyChanged();
    partial void OnCustomerCurrencyCodeChanging(string value);
    partial void OnCustomerCurrencyCodeChanged();
    partial void OnMessageChanging(string value);
    partial void OnMessageChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_RewardPointsHistory()
		{
			this._Nop190_Customer = default(EntityRef<Nop190_Customer>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RewardPointsHistoryID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int RewardPointsHistoryID
		{
			get
			{
				return this._RewardPointsHistoryID;
			}
			set
			{
				if ((this._RewardPointsHistoryID != value))
				{
					this.OnRewardPointsHistoryIDChanging(value);
					this.SendPropertyChanging();
					this._RewardPointsHistoryID = value;
					this.SendPropertyChanged("RewardPointsHistoryID");
					this.OnRewardPointsHistoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					if (this._Nop190_Customer.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OrderID", DbType="Int NOT NULL")]
		public int OrderID
		{
			get
			{
				return this._OrderID;
			}
			set
			{
				if ((this._OrderID != value))
				{
					this.OnOrderIDChanging(value);
					this.SendPropertyChanging();
					this._OrderID = value;
					this.SendPropertyChanged("OrderID");
					this.OnOrderIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Points", DbType="Int NOT NULL")]
		public int Points
		{
			get
			{
				return this._Points;
			}
			set
			{
				if ((this._Points != value))
				{
					this.OnPointsChanging(value);
					this.SendPropertyChanging();
					this._Points = value;
					this.SendPropertyChanged("Points");
					this.OnPointsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PointsBalance", DbType="Int NOT NULL")]
		public int PointsBalance
		{
			get
			{
				return this._PointsBalance;
			}
			set
			{
				if ((this._PointsBalance != value))
				{
					this.OnPointsBalanceChanging(value);
					this.SendPropertyChanging();
					this._PointsBalance = value;
					this.SendPropertyChanged("PointsBalance");
					this.OnPointsBalanceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UsedAmount", DbType="Money NOT NULL")]
		public decimal UsedAmount
		{
			get
			{
				return this._UsedAmount;
			}
			set
			{
				if ((this._UsedAmount != value))
				{
					this.OnUsedAmountChanging(value);
					this.SendPropertyChanging();
					this._UsedAmount = value;
					this.SendPropertyChanged("UsedAmount");
					this.OnUsedAmountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UsedAmountInCustomerCurrency", DbType="Money NOT NULL")]
		public decimal UsedAmountInCustomerCurrency
		{
			get
			{
				return this._UsedAmountInCustomerCurrency;
			}
			set
			{
				if ((this._UsedAmountInCustomerCurrency != value))
				{
					this.OnUsedAmountInCustomerCurrencyChanging(value);
					this.SendPropertyChanging();
					this._UsedAmountInCustomerCurrency = value;
					this.SendPropertyChanged("UsedAmountInCustomerCurrency");
					this.OnUsedAmountInCustomerCurrencyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerCurrencyCode", DbType="NVarChar(5) NOT NULL", CanBeNull=false)]
		public string CustomerCurrencyCode
		{
			get
			{
				return this._CustomerCurrencyCode;
			}
			set
			{
				if ((this._CustomerCurrencyCode != value))
				{
					this.OnCustomerCurrencyCodeChanging(value);
					this.SendPropertyChanging();
					this._CustomerCurrencyCode = value;
					this.SendPropertyChanged("CustomerCurrencyCode");
					this.OnCustomerCurrencyCodeChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Message", DbType="NVarChar(1000) NOT NULL", CanBeNull=false)]
		public string Message
		{
			get
			{
				return this._Message;
			}
			set
			{
				if ((this._Message != value))
				{
					this.OnMessageChanging(value);
					this.SendPropertyChanging();
					this._Message = value;
					this.SendPropertyChanged("Message");
					this.OnMessageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Customer_Nop190_RewardPointsHistory", Storage="_Nop190_Customer", ThisKey="CustomerID", OtherKey="CustomerID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Customer Nop190_Customer
		{
			get
			{
				return this._Nop190_Customer.Entity;
			}
			set
			{
				Nop190_Customer previousValue = this._Nop190_Customer.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Customer.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Customer.Entity = null;
						previousValue.Nop190_RewardPointsHistories.Remove(this);
					}
					this._Nop190_Customer.Entity = value;
					if ((value != null))
					{
						value.Nop190_RewardPointsHistories.Add(this);
						this._CustomerID = value.CustomerID;
					}
					else
					{
						this._CustomerID = default(int);
					}
					this.SendPropertyChanged("Nop190_Customer");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_SearchLog")]
	public partial class Nop190_SearchLog : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _SearchLogID;
		
		private string _SearchTerm;
		
		private int _CustomerID;
		
		private System.DateTime _CreatedOn;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnSearchLogIDChanging(int value);
    partial void OnSearchLogIDChanged();
    partial void OnSearchTermChanging(string value);
    partial void OnSearchTermChanged();
    partial void OnCustomerIDChanging(int value);
    partial void OnCustomerIDChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    #endregion
		
		public Nop190_SearchLog()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SearchLogID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int SearchLogID
		{
			get
			{
				return this._SearchLogID;
			}
			set
			{
				if ((this._SearchLogID != value))
				{
					this.OnSearchLogIDChanging(value);
					this.SendPropertyChanging();
					this._SearchLogID = value;
					this.SendPropertyChanged("SearchLogID");
					this.OnSearchLogIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SearchTerm", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string SearchTerm
		{
			get
			{
				return this._SearchTerm;
			}
			set
			{
				if ((this._SearchTerm != value))
				{
					this.OnSearchTermChanging(value);
					this.SendPropertyChanging();
					this._SearchTerm = value;
					this.SendPropertyChanged("SearchTerm");
					this.OnSearchTermChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", DbType="Int NOT NULL")]
		public int CustomerID
		{
			get
			{
				return this._CustomerID;
			}
			set
			{
				if ((this._CustomerID != value))
				{
					this.OnCustomerIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerID = value;
					this.SendPropertyChanged("CustomerID");
					this.OnCustomerIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Setting")]
	public partial class Nop190_Setting : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _SettingID;
		
		private string _Name;
		
		private string _Value;
		
		private string _Description;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnSettingIDChanging(int value);
    partial void OnSettingIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnValueChanging(string value);
    partial void OnValueChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    #endregion
		
		public Nop190_Setting()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SettingID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int SettingID
		{
			get
			{
				return this._SettingID;
			}
			set
			{
				if ((this._SettingID != value))
				{
					this.OnSettingIDChanging(value);
					this.SendPropertyChanging();
					this._SettingID = value;
					this.SendPropertyChanged("SettingID");
					this.OnSettingIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Value", DbType="NVarChar(2000) NOT NULL", CanBeNull=false)]
		public string Value
		{
			get
			{
				return this._Value;
			}
			set
			{
				if ((this._Value != value))
				{
					this.OnValueChanging(value);
					this.SendPropertyChanging();
					this._Value = value;
					this.SendPropertyChanged("Value");
					this.OnValueChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ShippingByTotal")]
	public partial class Nop190_ShippingByTotal : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ShippingByTotalID;
		
		private int _ShippingMethodID;
		
		private decimal _From;
		
		private decimal _To;
		
		private bool _UsePercentage;
		
		private decimal _ShippingChargePercentage;
		
		private decimal _ShippingChargeAmount;
		
		private EntityRef<Nop190_ShippingMethod> _Nop190_ShippingMethod;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnShippingByTotalIDChanging(int value);
    partial void OnShippingByTotalIDChanged();
    partial void OnShippingMethodIDChanging(int value);
    partial void OnShippingMethodIDChanged();
    partial void OnFromChanging(decimal value);
    partial void OnFromChanged();
    partial void OnToChanging(decimal value);
    partial void OnToChanged();
    partial void OnUsePercentageChanging(bool value);
    partial void OnUsePercentageChanged();
    partial void OnShippingChargePercentageChanging(decimal value);
    partial void OnShippingChargePercentageChanged();
    partial void OnShippingChargeAmountChanging(decimal value);
    partial void OnShippingChargeAmountChanged();
    #endregion
		
		public Nop190_ShippingByTotal()
		{
			this._Nop190_ShippingMethod = default(EntityRef<Nop190_ShippingMethod>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingByTotalID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ShippingByTotalID
		{
			get
			{
				return this._ShippingByTotalID;
			}
			set
			{
				if ((this._ShippingByTotalID != value))
				{
					this.OnShippingByTotalIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingByTotalID = value;
					this.SendPropertyChanged("ShippingByTotalID");
					this.OnShippingByTotalIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingMethodID", DbType="Int NOT NULL")]
		public int ShippingMethodID
		{
			get
			{
				return this._ShippingMethodID;
			}
			set
			{
				if ((this._ShippingMethodID != value))
				{
					if (this._Nop190_ShippingMethod.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnShippingMethodIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingMethodID = value;
					this.SendPropertyChanged("ShippingMethodID");
					this.OnShippingMethodIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[From]", Storage="_From", DbType="Decimal(18,2) NOT NULL")]
		public decimal From
		{
			get
			{
				return this._From;
			}
			set
			{
				if ((this._From != value))
				{
					this.OnFromChanging(value);
					this.SendPropertyChanging();
					this._From = value;
					this.SendPropertyChanged("From");
					this.OnFromChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[To]", Storage="_To", DbType="Decimal(18,2) NOT NULL")]
		public decimal To
		{
			get
			{
				return this._To;
			}
			set
			{
				if ((this._To != value))
				{
					this.OnToChanging(value);
					this.SendPropertyChanging();
					this._To = value;
					this.SendPropertyChanged("To");
					this.OnToChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UsePercentage", DbType="Bit NOT NULL")]
		public bool UsePercentage
		{
			get
			{
				return this._UsePercentage;
			}
			set
			{
				if ((this._UsePercentage != value))
				{
					this.OnUsePercentageChanging(value);
					this.SendPropertyChanging();
					this._UsePercentage = value;
					this.SendPropertyChanged("UsePercentage");
					this.OnUsePercentageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingChargePercentage", DbType="Decimal(18,2) NOT NULL")]
		public decimal ShippingChargePercentage
		{
			get
			{
				return this._ShippingChargePercentage;
			}
			set
			{
				if ((this._ShippingChargePercentage != value))
				{
					this.OnShippingChargePercentageChanging(value);
					this.SendPropertyChanging();
					this._ShippingChargePercentage = value;
					this.SendPropertyChanged("ShippingChargePercentage");
					this.OnShippingChargePercentageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingChargeAmount", DbType="Decimal(18,2) NOT NULL")]
		public decimal ShippingChargeAmount
		{
			get
			{
				return this._ShippingChargeAmount;
			}
			set
			{
				if ((this._ShippingChargeAmount != value))
				{
					this.OnShippingChargeAmountChanging(value);
					this.SendPropertyChanging();
					this._ShippingChargeAmount = value;
					this.SendPropertyChanged("ShippingChargeAmount");
					this.OnShippingChargeAmountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ShippingMethod_Nop190_ShippingByTotal", Storage="_Nop190_ShippingMethod", ThisKey="ShippingMethodID", OtherKey="ShippingMethodID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ShippingMethod Nop190_ShippingMethod
		{
			get
			{
				return this._Nop190_ShippingMethod.Entity;
			}
			set
			{
				Nop190_ShippingMethod previousValue = this._Nop190_ShippingMethod.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ShippingMethod.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ShippingMethod.Entity = null;
						previousValue.Nop190_ShippingByTotals.Remove(this);
					}
					this._Nop190_ShippingMethod.Entity = value;
					if ((value != null))
					{
						value.Nop190_ShippingByTotals.Add(this);
						this._ShippingMethodID = value.ShippingMethodID;
					}
					else
					{
						this._ShippingMethodID = default(int);
					}
					this.SendPropertyChanged("Nop190_ShippingMethod");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ShippingByWeight")]
	public partial class Nop190_ShippingByWeight : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ShippingByWeightID;
		
		private int _ShippingMethodID;
		
		private decimal _From;
		
		private decimal _To;
		
		private bool _UsePercentage;
		
		private decimal _ShippingChargePercentage;
		
		private decimal _ShippingChargeAmount;
		
		private EntityRef<Nop190_ShippingMethod> _Nop190_ShippingMethod;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnShippingByWeightIDChanging(int value);
    partial void OnShippingByWeightIDChanged();
    partial void OnShippingMethodIDChanging(int value);
    partial void OnShippingMethodIDChanged();
    partial void OnFromChanging(decimal value);
    partial void OnFromChanged();
    partial void OnToChanging(decimal value);
    partial void OnToChanged();
    partial void OnUsePercentageChanging(bool value);
    partial void OnUsePercentageChanged();
    partial void OnShippingChargePercentageChanging(decimal value);
    partial void OnShippingChargePercentageChanged();
    partial void OnShippingChargeAmountChanging(decimal value);
    partial void OnShippingChargeAmountChanged();
    #endregion
		
		public Nop190_ShippingByWeight()
		{
			this._Nop190_ShippingMethod = default(EntityRef<Nop190_ShippingMethod>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingByWeightID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ShippingByWeightID
		{
			get
			{
				return this._ShippingByWeightID;
			}
			set
			{
				if ((this._ShippingByWeightID != value))
				{
					this.OnShippingByWeightIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingByWeightID = value;
					this.SendPropertyChanged("ShippingByWeightID");
					this.OnShippingByWeightIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingMethodID", DbType="Int NOT NULL")]
		public int ShippingMethodID
		{
			get
			{
				return this._ShippingMethodID;
			}
			set
			{
				if ((this._ShippingMethodID != value))
				{
					if (this._Nop190_ShippingMethod.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnShippingMethodIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingMethodID = value;
					this.SendPropertyChanged("ShippingMethodID");
					this.OnShippingMethodIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[From]", Storage="_From", DbType="Decimal(18,2) NOT NULL")]
		public decimal From
		{
			get
			{
				return this._From;
			}
			set
			{
				if ((this._From != value))
				{
					this.OnFromChanging(value);
					this.SendPropertyChanging();
					this._From = value;
					this.SendPropertyChanged("From");
					this.OnFromChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[To]", Storage="_To", DbType="Decimal(18,2) NOT NULL")]
		public decimal To
		{
			get
			{
				return this._To;
			}
			set
			{
				if ((this._To != value))
				{
					this.OnToChanging(value);
					this.SendPropertyChanging();
					this._To = value;
					this.SendPropertyChanged("To");
					this.OnToChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UsePercentage", DbType="Bit NOT NULL")]
		public bool UsePercentage
		{
			get
			{
				return this._UsePercentage;
			}
			set
			{
				if ((this._UsePercentage != value))
				{
					this.OnUsePercentageChanging(value);
					this.SendPropertyChanging();
					this._UsePercentage = value;
					this.SendPropertyChanged("UsePercentage");
					this.OnUsePercentageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingChargePercentage", DbType="Decimal(18,2) NOT NULL")]
		public decimal ShippingChargePercentage
		{
			get
			{
				return this._ShippingChargePercentage;
			}
			set
			{
				if ((this._ShippingChargePercentage != value))
				{
					this.OnShippingChargePercentageChanging(value);
					this.SendPropertyChanging();
					this._ShippingChargePercentage = value;
					this.SendPropertyChanged("ShippingChargePercentage");
					this.OnShippingChargePercentageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingChargeAmount", DbType="Decimal(18,2) NOT NULL")]
		public decimal ShippingChargeAmount
		{
			get
			{
				return this._ShippingChargeAmount;
			}
			set
			{
				if ((this._ShippingChargeAmount != value))
				{
					this.OnShippingChargeAmountChanging(value);
					this.SendPropertyChanging();
					this._ShippingChargeAmount = value;
					this.SendPropertyChanged("ShippingChargeAmount");
					this.OnShippingChargeAmountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ShippingMethod_Nop190_ShippingByWeight", Storage="_Nop190_ShippingMethod", ThisKey="ShippingMethodID", OtherKey="ShippingMethodID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ShippingMethod Nop190_ShippingMethod
		{
			get
			{
				return this._Nop190_ShippingMethod.Entity;
			}
			set
			{
				Nop190_ShippingMethod previousValue = this._Nop190_ShippingMethod.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ShippingMethod.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ShippingMethod.Entity = null;
						previousValue.Nop190_ShippingByWeights.Remove(this);
					}
					this._Nop190_ShippingMethod.Entity = value;
					if ((value != null))
					{
						value.Nop190_ShippingByWeights.Add(this);
						this._ShippingMethodID = value.ShippingMethodID;
					}
					else
					{
						this._ShippingMethodID = default(int);
					}
					this.SendPropertyChanged("Nop190_ShippingMethod");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ShippingByWeightAndCountry")]
	public partial class Nop190_ShippingByWeightAndCountry : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ShippingByWeightAndCountryID;
		
		private int _ShippingMethodID;
		
		private int _CountryID;
		
		private decimal _From;
		
		private decimal _To;
		
		private bool _UsePercentage;
		
		private decimal _ShippingChargePercentage;
		
		private decimal _ShippingChargeAmount;
		
		private EntityRef<Nop190_Country> _Nop190_Country;
		
		private EntityRef<Nop190_ShippingMethod> _Nop190_ShippingMethod;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnShippingByWeightAndCountryIDChanging(int value);
    partial void OnShippingByWeightAndCountryIDChanged();
    partial void OnShippingMethodIDChanging(int value);
    partial void OnShippingMethodIDChanged();
    partial void OnCountryIDChanging(int value);
    partial void OnCountryIDChanged();
    partial void OnFromChanging(decimal value);
    partial void OnFromChanged();
    partial void OnToChanging(decimal value);
    partial void OnToChanged();
    partial void OnUsePercentageChanging(bool value);
    partial void OnUsePercentageChanged();
    partial void OnShippingChargePercentageChanging(decimal value);
    partial void OnShippingChargePercentageChanged();
    partial void OnShippingChargeAmountChanging(decimal value);
    partial void OnShippingChargeAmountChanged();
    #endregion
		
		public Nop190_ShippingByWeightAndCountry()
		{
			this._Nop190_Country = default(EntityRef<Nop190_Country>);
			this._Nop190_ShippingMethod = default(EntityRef<Nop190_ShippingMethod>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingByWeightAndCountryID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ShippingByWeightAndCountryID
		{
			get
			{
				return this._ShippingByWeightAndCountryID;
			}
			set
			{
				if ((this._ShippingByWeightAndCountryID != value))
				{
					this.OnShippingByWeightAndCountryIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingByWeightAndCountryID = value;
					this.SendPropertyChanged("ShippingByWeightAndCountryID");
					this.OnShippingByWeightAndCountryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingMethodID", DbType="Int NOT NULL")]
		public int ShippingMethodID
		{
			get
			{
				return this._ShippingMethodID;
			}
			set
			{
				if ((this._ShippingMethodID != value))
				{
					if (this._Nop190_ShippingMethod.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnShippingMethodIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingMethodID = value;
					this.SendPropertyChanged("ShippingMethodID");
					this.OnShippingMethodIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CountryID", DbType="Int NOT NULL")]
		public int CountryID
		{
			get
			{
				return this._CountryID;
			}
			set
			{
				if ((this._CountryID != value))
				{
					if (this._Nop190_Country.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCountryIDChanging(value);
					this.SendPropertyChanging();
					this._CountryID = value;
					this.SendPropertyChanged("CountryID");
					this.OnCountryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[From]", Storage="_From", DbType="Decimal(18,2) NOT NULL")]
		public decimal From
		{
			get
			{
				return this._From;
			}
			set
			{
				if ((this._From != value))
				{
					this.OnFromChanging(value);
					this.SendPropertyChanging();
					this._From = value;
					this.SendPropertyChanged("From");
					this.OnFromChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[To]", Storage="_To", DbType="Decimal(18,2) NOT NULL")]
		public decimal To
		{
			get
			{
				return this._To;
			}
			set
			{
				if ((this._To != value))
				{
					this.OnToChanging(value);
					this.SendPropertyChanging();
					this._To = value;
					this.SendPropertyChanged("To");
					this.OnToChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UsePercentage", DbType="Bit NOT NULL")]
		public bool UsePercentage
		{
			get
			{
				return this._UsePercentage;
			}
			set
			{
				if ((this._UsePercentage != value))
				{
					this.OnUsePercentageChanging(value);
					this.SendPropertyChanging();
					this._UsePercentage = value;
					this.SendPropertyChanged("UsePercentage");
					this.OnUsePercentageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingChargePercentage", DbType="Decimal(18,2) NOT NULL")]
		public decimal ShippingChargePercentage
		{
			get
			{
				return this._ShippingChargePercentage;
			}
			set
			{
				if ((this._ShippingChargePercentage != value))
				{
					this.OnShippingChargePercentageChanging(value);
					this.SendPropertyChanging();
					this._ShippingChargePercentage = value;
					this.SendPropertyChanged("ShippingChargePercentage");
					this.OnShippingChargePercentageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingChargeAmount", DbType="Decimal(18,2) NOT NULL")]
		public decimal ShippingChargeAmount
		{
			get
			{
				return this._ShippingChargeAmount;
			}
			set
			{
				if ((this._ShippingChargeAmount != value))
				{
					this.OnShippingChargeAmountChanging(value);
					this.SendPropertyChanging();
					this._ShippingChargeAmount = value;
					this.SendPropertyChanged("ShippingChargeAmount");
					this.OnShippingChargeAmountChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Country_Nop190_ShippingByWeightAndCountry", Storage="_Nop190_Country", ThisKey="CountryID", OtherKey="CountryID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Country Nop190_Country
		{
			get
			{
				return this._Nop190_Country.Entity;
			}
			set
			{
				Nop190_Country previousValue = this._Nop190_Country.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Country.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Country.Entity = null;
						previousValue.Nop190_ShippingByWeightAndCountries.Remove(this);
					}
					this._Nop190_Country.Entity = value;
					if ((value != null))
					{
						value.Nop190_ShippingByWeightAndCountries.Add(this);
						this._CountryID = value.CountryID;
					}
					else
					{
						this._CountryID = default(int);
					}
					this.SendPropertyChanged("Nop190_Country");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ShippingMethod_Nop190_ShippingByWeightAndCountry", Storage="_Nop190_ShippingMethod", ThisKey="ShippingMethodID", OtherKey="ShippingMethodID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ShippingMethod Nop190_ShippingMethod
		{
			get
			{
				return this._Nop190_ShippingMethod.Entity;
			}
			set
			{
				Nop190_ShippingMethod previousValue = this._Nop190_ShippingMethod.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ShippingMethod.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ShippingMethod.Entity = null;
						previousValue.Nop190_ShippingByWeightAndCountries.Remove(this);
					}
					this._Nop190_ShippingMethod.Entity = value;
					if ((value != null))
					{
						value.Nop190_ShippingByWeightAndCountries.Add(this);
						this._ShippingMethodID = value.ShippingMethodID;
					}
					else
					{
						this._ShippingMethodID = default(int);
					}
					this.SendPropertyChanged("Nop190_ShippingMethod");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ShippingMethod")]
	public partial class Nop190_ShippingMethod : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ShippingMethodID;
		
		private string _Name;
		
		private string _Description;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_ShippingByTotal> _Nop190_ShippingByTotals;
		
		private EntitySet<Nop190_ShippingByWeight> _Nop190_ShippingByWeights;
		
		private EntitySet<Nop190_ShippingByWeightAndCountry> _Nop190_ShippingByWeightAndCountries;
		
		private EntitySet<Nop190_ShippingMethod_RestrictedCountry> _Nop190_ShippingMethod_RestrictedCountries;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnShippingMethodIDChanging(int value);
    partial void OnShippingMethodIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_ShippingMethod()
		{
			this._Nop190_ShippingByTotals = new EntitySet<Nop190_ShippingByTotal>(new Action<Nop190_ShippingByTotal>(this.attach_Nop190_ShippingByTotals), new Action<Nop190_ShippingByTotal>(this.detach_Nop190_ShippingByTotals));
			this._Nop190_ShippingByWeights = new EntitySet<Nop190_ShippingByWeight>(new Action<Nop190_ShippingByWeight>(this.attach_Nop190_ShippingByWeights), new Action<Nop190_ShippingByWeight>(this.detach_Nop190_ShippingByWeights));
			this._Nop190_ShippingByWeightAndCountries = new EntitySet<Nop190_ShippingByWeightAndCountry>(new Action<Nop190_ShippingByWeightAndCountry>(this.attach_Nop190_ShippingByWeightAndCountries), new Action<Nop190_ShippingByWeightAndCountry>(this.detach_Nop190_ShippingByWeightAndCountries));
			this._Nop190_ShippingMethod_RestrictedCountries = new EntitySet<Nop190_ShippingMethod_RestrictedCountry>(new Action<Nop190_ShippingMethod_RestrictedCountry>(this.attach_Nop190_ShippingMethod_RestrictedCountries), new Action<Nop190_ShippingMethod_RestrictedCountry>(this.detach_Nop190_ShippingMethod_RestrictedCountries));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingMethodID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ShippingMethodID
		{
			get
			{
				return this._ShippingMethodID;
			}
			set
			{
				if ((this._ShippingMethodID != value))
				{
					this.OnShippingMethodIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingMethodID = value;
					this.SendPropertyChanged("ShippingMethodID");
					this.OnShippingMethodIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(2000) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ShippingMethod_Nop190_ShippingByTotal", Storage="_Nop190_ShippingByTotals", ThisKey="ShippingMethodID", OtherKey="ShippingMethodID")]
		public EntitySet<Nop190_ShippingByTotal> Nop190_ShippingByTotals
		{
			get
			{
				return this._Nop190_ShippingByTotals;
			}
			set
			{
				this._Nop190_ShippingByTotals.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ShippingMethod_Nop190_ShippingByWeight", Storage="_Nop190_ShippingByWeights", ThisKey="ShippingMethodID", OtherKey="ShippingMethodID")]
		public EntitySet<Nop190_ShippingByWeight> Nop190_ShippingByWeights
		{
			get
			{
				return this._Nop190_ShippingByWeights;
			}
			set
			{
				this._Nop190_ShippingByWeights.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ShippingMethod_Nop190_ShippingByWeightAndCountry", Storage="_Nop190_ShippingByWeightAndCountries", ThisKey="ShippingMethodID", OtherKey="ShippingMethodID")]
		public EntitySet<Nop190_ShippingByWeightAndCountry> Nop190_ShippingByWeightAndCountries
		{
			get
			{
				return this._Nop190_ShippingByWeightAndCountries;
			}
			set
			{
				this._Nop190_ShippingByWeightAndCountries.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ShippingMethod_Nop190_ShippingMethod_RestrictedCountry", Storage="_Nop190_ShippingMethod_RestrictedCountries", ThisKey="ShippingMethodID", OtherKey="ShippingMethodID")]
		public EntitySet<Nop190_ShippingMethod_RestrictedCountry> Nop190_ShippingMethod_RestrictedCountries
		{
			get
			{
				return this._Nop190_ShippingMethod_RestrictedCountries;
			}
			set
			{
				this._Nop190_ShippingMethod_RestrictedCountries.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_ShippingByTotals(Nop190_ShippingByTotal entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ShippingMethod = this;
		}
		
		private void detach_Nop190_ShippingByTotals(Nop190_ShippingByTotal entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ShippingMethod = null;
		}
		
		private void attach_Nop190_ShippingByWeights(Nop190_ShippingByWeight entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ShippingMethod = this;
		}
		
		private void detach_Nop190_ShippingByWeights(Nop190_ShippingByWeight entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ShippingMethod = null;
		}
		
		private void attach_Nop190_ShippingByWeightAndCountries(Nop190_ShippingByWeightAndCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ShippingMethod = this;
		}
		
		private void detach_Nop190_ShippingByWeightAndCountries(Nop190_ShippingByWeightAndCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ShippingMethod = null;
		}
		
		private void attach_Nop190_ShippingMethod_RestrictedCountries(Nop190_ShippingMethod_RestrictedCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ShippingMethod = this;
		}
		
		private void detach_Nop190_ShippingMethod_RestrictedCountries(Nop190_ShippingMethod_RestrictedCountry entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_ShippingMethod = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ShippingMethod_RestrictedCountries")]
	public partial class Nop190_ShippingMethod_RestrictedCountry : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ShippingMethodID;
		
		private int _CountryID;
		
		private EntityRef<Nop190_Country> _Nop190_Country;
		
		private EntityRef<Nop190_ShippingMethod> _Nop190_ShippingMethod;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnShippingMethodIDChanging(int value);
    partial void OnShippingMethodIDChanged();
    partial void OnCountryIDChanging(int value);
    partial void OnCountryIDChanged();
    #endregion
		
		public Nop190_ShippingMethod_RestrictedCountry()
		{
			this._Nop190_Country = default(EntityRef<Nop190_Country>);
			this._Nop190_ShippingMethod = default(EntityRef<Nop190_ShippingMethod>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingMethodID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int ShippingMethodID
		{
			get
			{
				return this._ShippingMethodID;
			}
			set
			{
				if ((this._ShippingMethodID != value))
				{
					if (this._Nop190_ShippingMethod.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnShippingMethodIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingMethodID = value;
					this.SendPropertyChanged("ShippingMethodID");
					this.OnShippingMethodIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CountryID", DbType="Int NOT NULL", IsPrimaryKey=true)]
		public int CountryID
		{
			get
			{
				return this._CountryID;
			}
			set
			{
				if ((this._CountryID != value))
				{
					if (this._Nop190_Country.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCountryIDChanging(value);
					this.SendPropertyChanging();
					this._CountryID = value;
					this.SendPropertyChanged("CountryID");
					this.OnCountryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Country_Nop190_ShippingMethod_RestrictedCountry", Storage="_Nop190_Country", ThisKey="CountryID", OtherKey="CountryID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Country Nop190_Country
		{
			get
			{
				return this._Nop190_Country.Entity;
			}
			set
			{
				Nop190_Country previousValue = this._Nop190_Country.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Country.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Country.Entity = null;
						previousValue.Nop190_ShippingMethod_RestrictedCountries.Remove(this);
					}
					this._Nop190_Country.Entity = value;
					if ((value != null))
					{
						value.Nop190_ShippingMethod_RestrictedCountries.Add(this);
						this._CountryID = value.CountryID;
					}
					else
					{
						this._CountryID = default(int);
					}
					this.SendPropertyChanged("Nop190_Country");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ShippingMethod_Nop190_ShippingMethod_RestrictedCountry", Storage="_Nop190_ShippingMethod", ThisKey="ShippingMethodID", OtherKey="ShippingMethodID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ShippingMethod Nop190_ShippingMethod
		{
			get
			{
				return this._Nop190_ShippingMethod.Entity;
			}
			set
			{
				Nop190_ShippingMethod previousValue = this._Nop190_ShippingMethod.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ShippingMethod.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ShippingMethod.Entity = null;
						previousValue.Nop190_ShippingMethod_RestrictedCountries.Remove(this);
					}
					this._Nop190_ShippingMethod.Entity = value;
					if ((value != null))
					{
						value.Nop190_ShippingMethod_RestrictedCountries.Add(this);
						this._ShippingMethodID = value.ShippingMethodID;
					}
					else
					{
						this._ShippingMethodID = default(int);
					}
					this.SendPropertyChanged("Nop190_ShippingMethod");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ShippingRateComputationMethod")]
	public partial class Nop190_ShippingRateComputationMethod : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ShippingRateComputationMethodID;
		
		private string _Name;
		
		private string _Description;
		
		private string _ConfigureTemplatePath;
		
		private string _ClassName;
		
		private bool _IsActive;
		
		private int _DisplayOrder;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnShippingRateComputationMethodIDChanging(int value);
    partial void OnShippingRateComputationMethodIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnConfigureTemplatePathChanging(string value);
    partial void OnConfigureTemplatePathChanged();
    partial void OnClassNameChanging(string value);
    partial void OnClassNameChanged();
    partial void OnIsActiveChanging(bool value);
    partial void OnIsActiveChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_ShippingRateComputationMethod()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShippingRateComputationMethodID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ShippingRateComputationMethodID
		{
			get
			{
				return this._ShippingRateComputationMethodID;
			}
			set
			{
				if ((this._ShippingRateComputationMethodID != value))
				{
					this.OnShippingRateComputationMethodIDChanging(value);
					this.SendPropertyChanging();
					this._ShippingRateComputationMethodID = value;
					this.SendPropertyChanged("ShippingRateComputationMethodID");
					this.OnShippingRateComputationMethodIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ConfigureTemplatePath", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string ConfigureTemplatePath
		{
			get
			{
				return this._ConfigureTemplatePath;
			}
			set
			{
				if ((this._ConfigureTemplatePath != value))
				{
					this.OnConfigureTemplatePathChanging(value);
					this.SendPropertyChanging();
					this._ConfigureTemplatePath = value;
					this.SendPropertyChanged("ConfigureTemplatePath");
					this.OnConfigureTemplatePathChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ClassName", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string ClassName
		{
			get
			{
				return this._ClassName;
			}
			set
			{
				if ((this._ClassName != value))
				{
					this.OnClassNameChanging(value);
					this.SendPropertyChanging();
					this._ClassName = value;
					this.SendPropertyChanged("ClassName");
					this.OnClassNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsActive", DbType="Bit NOT NULL")]
		public bool IsActive
		{
			get
			{
				return this._IsActive;
			}
			set
			{
				if ((this._IsActive != value))
				{
					this.OnIsActiveChanging(value);
					this.SendPropertyChanging();
					this._IsActive = value;
					this.SendPropertyChanged("IsActive");
					this.OnIsActiveChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_ShoppingCartItem")]
	public partial class Nop190_ShoppingCartItem : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _ShoppingCartItemID;
		
		private int _ShoppingCartTypeID;
		
		private System.Guid _CustomerSessionGUID;
		
		private int _ProductVariantID;
		
		private System.Xml.Linq.XElement _AttributesXML;
		
		private decimal _CustomerEnteredPrice;
		
		private int _Quantity;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntityRef<Nop190_CustomerSession> _Nop190_CustomerSession;
		
		private EntityRef<Nop190_ProductVariant> _Nop190_ProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnShoppingCartItemIDChanging(int value);
    partial void OnShoppingCartItemIDChanged();
    partial void OnShoppingCartTypeIDChanging(int value);
    partial void OnShoppingCartTypeIDChanged();
    partial void OnCustomerSessionGUIDChanging(System.Guid value);
    partial void OnCustomerSessionGUIDChanged();
    partial void OnProductVariantIDChanging(int value);
    partial void OnProductVariantIDChanged();
    partial void OnAttributesXMLChanging(System.Xml.Linq.XElement value);
    partial void OnAttributesXMLChanged();
    partial void OnCustomerEnteredPriceChanging(decimal value);
    partial void OnCustomerEnteredPriceChanged();
    partial void OnQuantityChanging(int value);
    partial void OnQuantityChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_ShoppingCartItem()
		{
			this._Nop190_CustomerSession = default(EntityRef<Nop190_CustomerSession>);
			this._Nop190_ProductVariant = default(EntityRef<Nop190_ProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShoppingCartItemID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int ShoppingCartItemID
		{
			get
			{
				return this._ShoppingCartItemID;
			}
			set
			{
				if ((this._ShoppingCartItemID != value))
				{
					this.OnShoppingCartItemIDChanging(value);
					this.SendPropertyChanging();
					this._ShoppingCartItemID = value;
					this.SendPropertyChanged("ShoppingCartItemID");
					this.OnShoppingCartItemIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ShoppingCartTypeID", DbType="Int NOT NULL")]
		public int ShoppingCartTypeID
		{
			get
			{
				return this._ShoppingCartTypeID;
			}
			set
			{
				if ((this._ShoppingCartTypeID != value))
				{
					this.OnShoppingCartTypeIDChanging(value);
					this.SendPropertyChanging();
					this._ShoppingCartTypeID = value;
					this.SendPropertyChanged("ShoppingCartTypeID");
					this.OnShoppingCartTypeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerSessionGUID", DbType="UniqueIdentifier NOT NULL")]
		public System.Guid CustomerSessionGUID
		{
			get
			{
				return this._CustomerSessionGUID;
			}
			set
			{
				if ((this._CustomerSessionGUID != value))
				{
					if (this._Nop190_CustomerSession.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCustomerSessionGUIDChanging(value);
					this.SendPropertyChanging();
					this._CustomerSessionGUID = value;
					this.SendPropertyChanged("CustomerSessionGUID");
					this.OnCustomerSessionGUIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantID", DbType="Int NOT NULL")]
		public int ProductVariantID
		{
			get
			{
				return this._ProductVariantID;
			}
			set
			{
				if ((this._ProductVariantID != value))
				{
					if (this._Nop190_ProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantID = value;
					this.SendPropertyChanged("ProductVariantID");
					this.OnProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AttributesXML", DbType="Xml NOT NULL", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
		public System.Xml.Linq.XElement AttributesXML
		{
			get
			{
				return this._AttributesXML;
			}
			set
			{
				if ((this._AttributesXML != value))
				{
					this.OnAttributesXMLChanging(value);
					this.SendPropertyChanging();
					this._AttributesXML = value;
					this.SendPropertyChanged("AttributesXML");
					this.OnAttributesXMLChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerEnteredPrice", DbType="Money NOT NULL")]
		public decimal CustomerEnteredPrice
		{
			get
			{
				return this._CustomerEnteredPrice;
			}
			set
			{
				if ((this._CustomerEnteredPrice != value))
				{
					this.OnCustomerEnteredPriceChanging(value);
					this.SendPropertyChanging();
					this._CustomerEnteredPrice = value;
					this.SendPropertyChanged("CustomerEnteredPrice");
					this.OnCustomerEnteredPriceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Quantity", DbType="Int NOT NULL")]
		public int Quantity
		{
			get
			{
				return this._Quantity;
			}
			set
			{
				if ((this._Quantity != value))
				{
					this.OnQuantityChanging(value);
					this.SendPropertyChanging();
					this._Quantity = value;
					this.SendPropertyChanged("Quantity");
					this.OnQuantityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_CustomerSession_Nop190_ShoppingCartItem", Storage="_Nop190_CustomerSession", ThisKey="CustomerSessionGUID", OtherKey="CustomerSessionGUID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_CustomerSession Nop190_CustomerSession
		{
			get
			{
				return this._Nop190_CustomerSession.Entity;
			}
			set
			{
				Nop190_CustomerSession previousValue = this._Nop190_CustomerSession.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_CustomerSession.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_CustomerSession.Entity = null;
						previousValue.Nop190_ShoppingCartItems.Remove(this);
					}
					this._Nop190_CustomerSession.Entity = value;
					if ((value != null))
					{
						value.Nop190_ShoppingCartItems.Add(this);
						this._CustomerSessionGUID = value.CustomerSessionGUID;
					}
					else
					{
						this._CustomerSessionGUID = default(System.Guid);
					}
					this.SendPropertyChanged("Nop190_CustomerSession");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_ShoppingCartItem", Storage="_Nop190_ProductVariant", ThisKey="ProductVariantID", OtherKey="ProductVariantId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductVariant Nop190_ProductVariant
		{
			get
			{
				return this._Nop190_ProductVariant.Entity;
			}
			set
			{
				Nop190_ProductVariant previousValue = this._Nop190_ProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariant.Entity = null;
						previousValue.Nop190_ShoppingCartItems.Remove(this);
					}
					this._Nop190_ProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_ShoppingCartItems.Add(this);
						this._ProductVariantID = value.ProductVariantId;
					}
					else
					{
						this._ProductVariantID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_SMSProvider")]
	public partial class Nop190_SMSProvider : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _SMSProviderId;
		
		private string _Name;
		
		private string _ClassName;
		
		private string _SystemKeyword;
		
		private bool _IsActive;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnSMSProviderIdChanging(int value);
    partial void OnSMSProviderIdChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnClassNameChanging(string value);
    partial void OnClassNameChanged();
    partial void OnSystemKeywordChanging(string value);
    partial void OnSystemKeywordChanged();
    partial void OnIsActiveChanging(bool value);
    partial void OnIsActiveChanged();
    #endregion
		
		public Nop190_SMSProvider()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SMSProviderId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int SMSProviderId
		{
			get
			{
				return this._SMSProviderId;
			}
			set
			{
				if ((this._SMSProviderId != value))
				{
					this.OnSMSProviderIdChanging(value);
					this.SendPropertyChanging();
					this._SMSProviderId = value;
					this.SendPropertyChanged("SMSProviderId");
					this.OnSMSProviderIdChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ClassName", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string ClassName
		{
			get
			{
				return this._ClassName;
			}
			set
			{
				if ((this._ClassName != value))
				{
					this.OnClassNameChanging(value);
					this.SendPropertyChanging();
					this._ClassName = value;
					this.SendPropertyChanged("ClassName");
					this.OnClassNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SystemKeyword", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string SystemKeyword
		{
			get
			{
				return this._SystemKeyword;
			}
			set
			{
				if ((this._SystemKeyword != value))
				{
					this.OnSystemKeywordChanging(value);
					this.SendPropertyChanging();
					this._SystemKeyword = value;
					this.SendPropertyChanged("SystemKeyword");
					this.OnSystemKeywordChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsActive", DbType="Bit NOT NULL")]
		public bool IsActive
		{
			get
			{
				return this._IsActive;
			}
			set
			{
				if ((this._IsActive != value))
				{
					this.OnIsActiveChanging(value);
					this.SendPropertyChanging();
					this._IsActive = value;
					this.SendPropertyChanged("IsActive");
					this.OnIsActiveChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_SpecificationAttribute")]
	public partial class Nop190_SpecificationAttribute : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _SpecificationAttributeID;
		
		private string _Name;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_SpecificationAttributeLocalized> _Nop190_SpecificationAttributeLocalizeds;
		
		private EntitySet<Nop190_SpecificationAttributeOption> _Nop190_SpecificationAttributeOptions;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnSpecificationAttributeIDChanging(int value);
    partial void OnSpecificationAttributeIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_SpecificationAttribute()
		{
			this._Nop190_SpecificationAttributeLocalizeds = new EntitySet<Nop190_SpecificationAttributeLocalized>(new Action<Nop190_SpecificationAttributeLocalized>(this.attach_Nop190_SpecificationAttributeLocalizeds), new Action<Nop190_SpecificationAttributeLocalized>(this.detach_Nop190_SpecificationAttributeLocalizeds));
			this._Nop190_SpecificationAttributeOptions = new EntitySet<Nop190_SpecificationAttributeOption>(new Action<Nop190_SpecificationAttributeOption>(this.attach_Nop190_SpecificationAttributeOptions), new Action<Nop190_SpecificationAttributeOption>(this.detach_Nop190_SpecificationAttributeOptions));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecificationAttributeID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int SpecificationAttributeID
		{
			get
			{
				return this._SpecificationAttributeID;
			}
			set
			{
				if ((this._SpecificationAttributeID != value))
				{
					this.OnSpecificationAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._SpecificationAttributeID = value;
					this.SendPropertyChanged("SpecificationAttributeID");
					this.OnSpecificationAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_SpecificationAttribute_Nop190_SpecificationAttributeLocalized", Storage="_Nop190_SpecificationAttributeLocalizeds", ThisKey="SpecificationAttributeID", OtherKey="SpecificationAttributeID")]
		public EntitySet<Nop190_SpecificationAttributeLocalized> Nop190_SpecificationAttributeLocalizeds
		{
			get
			{
				return this._Nop190_SpecificationAttributeLocalizeds;
			}
			set
			{
				this._Nop190_SpecificationAttributeLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_SpecificationAttribute_Nop190_SpecificationAttributeOption", Storage="_Nop190_SpecificationAttributeOptions", ThisKey="SpecificationAttributeID", OtherKey="SpecificationAttributeID")]
		public EntitySet<Nop190_SpecificationAttributeOption> Nop190_SpecificationAttributeOptions
		{
			get
			{
				return this._Nop190_SpecificationAttributeOptions;
			}
			set
			{
				this._Nop190_SpecificationAttributeOptions.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_SpecificationAttributeLocalizeds(Nop190_SpecificationAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_SpecificationAttribute = this;
		}
		
		private void detach_Nop190_SpecificationAttributeLocalizeds(Nop190_SpecificationAttributeLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_SpecificationAttribute = null;
		}
		
		private void attach_Nop190_SpecificationAttributeOptions(Nop190_SpecificationAttributeOption entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_SpecificationAttribute = this;
		}
		
		private void detach_Nop190_SpecificationAttributeOptions(Nop190_SpecificationAttributeOption entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_SpecificationAttribute = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_SpecificationAttributeLocalized")]
	public partial class Nop190_SpecificationAttributeLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _SpecificationAttributeLocalizedID;
		
		private int _SpecificationAttributeID;
		
		private int _LanguageID;
		
		private string _Name;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
		private EntityRef<Nop190_SpecificationAttribute> _Nop190_SpecificationAttribute;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnSpecificationAttributeLocalizedIDChanging(int value);
    partial void OnSpecificationAttributeLocalizedIDChanged();
    partial void OnSpecificationAttributeIDChanging(int value);
    partial void OnSpecificationAttributeIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    #endregion
		
		public Nop190_SpecificationAttributeLocalized()
		{
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			this._Nop190_SpecificationAttribute = default(EntityRef<Nop190_SpecificationAttribute>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecificationAttributeLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int SpecificationAttributeLocalizedID
		{
			get
			{
				return this._SpecificationAttributeLocalizedID;
			}
			set
			{
				if ((this._SpecificationAttributeLocalizedID != value))
				{
					this.OnSpecificationAttributeLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._SpecificationAttributeLocalizedID = value;
					this.SendPropertyChanged("SpecificationAttributeLocalizedID");
					this.OnSpecificationAttributeLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecificationAttributeID", DbType="Int NOT NULL")]
		public int SpecificationAttributeID
		{
			get
			{
				return this._SpecificationAttributeID;
			}
			set
			{
				if ((this._SpecificationAttributeID != value))
				{
					if (this._Nop190_SpecificationAttribute.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnSpecificationAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._SpecificationAttributeID = value;
					this.SendPropertyChanged("SpecificationAttributeID");
					this.OnSpecificationAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_SpecificationAttributeLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_SpecificationAttributeLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_SpecificationAttributeLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_SpecificationAttribute_Nop190_SpecificationAttributeLocalized", Storage="_Nop190_SpecificationAttribute", ThisKey="SpecificationAttributeID", OtherKey="SpecificationAttributeID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_SpecificationAttribute Nop190_SpecificationAttribute
		{
			get
			{
				return this._Nop190_SpecificationAttribute.Entity;
			}
			set
			{
				Nop190_SpecificationAttribute previousValue = this._Nop190_SpecificationAttribute.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_SpecificationAttribute.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_SpecificationAttribute.Entity = null;
						previousValue.Nop190_SpecificationAttributeLocalizeds.Remove(this);
					}
					this._Nop190_SpecificationAttribute.Entity = value;
					if ((value != null))
					{
						value.Nop190_SpecificationAttributeLocalizeds.Add(this);
						this._SpecificationAttributeID = value.SpecificationAttributeID;
					}
					else
					{
						this._SpecificationAttributeID = default(int);
					}
					this.SendPropertyChanged("Nop190_SpecificationAttribute");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_SpecificationAttributeOption")]
	public partial class Nop190_SpecificationAttributeOption : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _SpecificationAttributeOptionID;
		
		private int _SpecificationAttributeID;
		
		private string _Name;
		
		private int _DisplayOrder;
		
		private EntitySet<Nop190_Product_SpecificationAttribute_Mapping> _Nop190_Product_SpecificationAttribute_Mappings;
		
		private EntitySet<Nop190_SpecificationAttributeOptionLocalized> _Nop190_SpecificationAttributeOptionLocalizeds;
		
		private EntityRef<Nop190_SpecificationAttribute> _Nop190_SpecificationAttribute;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnSpecificationAttributeOptionIDChanging(int value);
    partial void OnSpecificationAttributeOptionIDChanged();
    partial void OnSpecificationAttributeIDChanging(int value);
    partial void OnSpecificationAttributeIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_SpecificationAttributeOption()
		{
			this._Nop190_Product_SpecificationAttribute_Mappings = new EntitySet<Nop190_Product_SpecificationAttribute_Mapping>(new Action<Nop190_Product_SpecificationAttribute_Mapping>(this.attach_Nop190_Product_SpecificationAttribute_Mappings), new Action<Nop190_Product_SpecificationAttribute_Mapping>(this.detach_Nop190_Product_SpecificationAttribute_Mappings));
			this._Nop190_SpecificationAttributeOptionLocalizeds = new EntitySet<Nop190_SpecificationAttributeOptionLocalized>(new Action<Nop190_SpecificationAttributeOptionLocalized>(this.attach_Nop190_SpecificationAttributeOptionLocalizeds), new Action<Nop190_SpecificationAttributeOptionLocalized>(this.detach_Nop190_SpecificationAttributeOptionLocalizeds));
			this._Nop190_SpecificationAttribute = default(EntityRef<Nop190_SpecificationAttribute>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecificationAttributeOptionID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int SpecificationAttributeOptionID
		{
			get
			{
				return this._SpecificationAttributeOptionID;
			}
			set
			{
				if ((this._SpecificationAttributeOptionID != value))
				{
					this.OnSpecificationAttributeOptionIDChanging(value);
					this.SendPropertyChanging();
					this._SpecificationAttributeOptionID = value;
					this.SendPropertyChanged("SpecificationAttributeOptionID");
					this.OnSpecificationAttributeOptionIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecificationAttributeID", DbType="Int NOT NULL")]
		public int SpecificationAttributeID
		{
			get
			{
				return this._SpecificationAttributeID;
			}
			set
			{
				if ((this._SpecificationAttributeID != value))
				{
					if (this._Nop190_SpecificationAttribute.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnSpecificationAttributeIDChanging(value);
					this.SendPropertyChanging();
					this._SpecificationAttributeID = value;
					this.SendPropertyChanged("SpecificationAttributeID");
					this.OnSpecificationAttributeIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_SpecificationAttributeOption_Nop190_Product_SpecificationAttribute_Mapping" +
			"", Storage="_Nop190_Product_SpecificationAttribute_Mappings", ThisKey="SpecificationAttributeOptionID", OtherKey="SpecificationAttributeOptionID")]
		public EntitySet<Nop190_Product_SpecificationAttribute_Mapping> Nop190_Product_SpecificationAttribute_Mappings
		{
			get
			{
				return this._Nop190_Product_SpecificationAttribute_Mappings;
			}
			set
			{
				this._Nop190_Product_SpecificationAttribute_Mappings.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_SpecificationAttributeOption_Nop190_SpecificationAttributeOptionLocalized", Storage="_Nop190_SpecificationAttributeOptionLocalizeds", ThisKey="SpecificationAttributeOptionID", OtherKey="SpecificationAttributeOptionID")]
		public EntitySet<Nop190_SpecificationAttributeOptionLocalized> Nop190_SpecificationAttributeOptionLocalizeds
		{
			get
			{
				return this._Nop190_SpecificationAttributeOptionLocalizeds;
			}
			set
			{
				this._Nop190_SpecificationAttributeOptionLocalizeds.Assign(value);
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_SpecificationAttribute_Nop190_SpecificationAttributeOption", Storage="_Nop190_SpecificationAttribute", ThisKey="SpecificationAttributeID", OtherKey="SpecificationAttributeID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_SpecificationAttribute Nop190_SpecificationAttribute
		{
			get
			{
				return this._Nop190_SpecificationAttribute.Entity;
			}
			set
			{
				Nop190_SpecificationAttribute previousValue = this._Nop190_SpecificationAttribute.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_SpecificationAttribute.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_SpecificationAttribute.Entity = null;
						previousValue.Nop190_SpecificationAttributeOptions.Remove(this);
					}
					this._Nop190_SpecificationAttribute.Entity = value;
					if ((value != null))
					{
						value.Nop190_SpecificationAttributeOptions.Add(this);
						this._SpecificationAttributeID = value.SpecificationAttributeID;
					}
					else
					{
						this._SpecificationAttributeID = default(int);
					}
					this.SendPropertyChanged("Nop190_SpecificationAttribute");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_Product_SpecificationAttribute_Mappings(Nop190_Product_SpecificationAttribute_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_SpecificationAttributeOption = this;
		}
		
		private void detach_Nop190_Product_SpecificationAttribute_Mappings(Nop190_Product_SpecificationAttribute_Mapping entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_SpecificationAttributeOption = null;
		}
		
		private void attach_Nop190_SpecificationAttributeOptionLocalizeds(Nop190_SpecificationAttributeOptionLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_SpecificationAttributeOption = this;
		}
		
		private void detach_Nop190_SpecificationAttributeOptionLocalizeds(Nop190_SpecificationAttributeOptionLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_SpecificationAttributeOption = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_SpecificationAttributeOptionLocalized")]
	public partial class Nop190_SpecificationAttributeOptionLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _SpecificationAttributeOptionLocalizedID;
		
		private int _SpecificationAttributeOptionID;
		
		private int _LanguageID;
		
		private string _Name;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
		private EntityRef<Nop190_SpecificationAttributeOption> _Nop190_SpecificationAttributeOption;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnSpecificationAttributeOptionLocalizedIDChanging(int value);
    partial void OnSpecificationAttributeOptionLocalizedIDChanged();
    partial void OnSpecificationAttributeOptionIDChanging(int value);
    partial void OnSpecificationAttributeOptionIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    #endregion
		
		public Nop190_SpecificationAttributeOptionLocalized()
		{
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			this._Nop190_SpecificationAttributeOption = default(EntityRef<Nop190_SpecificationAttributeOption>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecificationAttributeOptionLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int SpecificationAttributeOptionLocalizedID
		{
			get
			{
				return this._SpecificationAttributeOptionLocalizedID;
			}
			set
			{
				if ((this._SpecificationAttributeOptionLocalizedID != value))
				{
					this.OnSpecificationAttributeOptionLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._SpecificationAttributeOptionLocalizedID = value;
					this.SendPropertyChanged("SpecificationAttributeOptionLocalizedID");
					this.OnSpecificationAttributeOptionLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecificationAttributeOptionID", DbType="Int NOT NULL")]
		public int SpecificationAttributeOptionID
		{
			get
			{
				return this._SpecificationAttributeOptionID;
			}
			set
			{
				if ((this._SpecificationAttributeOptionID != value))
				{
					if (this._Nop190_SpecificationAttributeOption.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnSpecificationAttributeOptionIDChanging(value);
					this.SendPropertyChanging();
					this._SpecificationAttributeOptionID = value;
					this.SendPropertyChanged("SpecificationAttributeOptionID");
					this.OnSpecificationAttributeOptionIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_SpecificationAttributeOptionLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_SpecificationAttributeOptionLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_SpecificationAttributeOptionLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_SpecificationAttributeOption_Nop190_SpecificationAttributeOptionLocalized", Storage="_Nop190_SpecificationAttributeOption", ThisKey="SpecificationAttributeOptionID", OtherKey="SpecificationAttributeOptionID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_SpecificationAttributeOption Nop190_SpecificationAttributeOption
		{
			get
			{
				return this._Nop190_SpecificationAttributeOption.Entity;
			}
			set
			{
				Nop190_SpecificationAttributeOption previousValue = this._Nop190_SpecificationAttributeOption.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_SpecificationAttributeOption.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_SpecificationAttributeOption.Entity = null;
						previousValue.Nop190_SpecificationAttributeOptionLocalizeds.Remove(this);
					}
					this._Nop190_SpecificationAttributeOption.Entity = value;
					if ((value != null))
					{
						value.Nop190_SpecificationAttributeOptionLocalizeds.Add(this);
						this._SpecificationAttributeOptionID = value.SpecificationAttributeOptionID;
					}
					else
					{
						this._SpecificationAttributeOptionID = default(int);
					}
					this.SendPropertyChanged("Nop190_SpecificationAttributeOption");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_StateProvince")]
	public partial class Nop190_StateProvince : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _StateProvinceID;
		
		private int _CountryID;
		
		private string _Name;
		
		private string _Abbreviation;
		
		private int _DisplayOrder;
		
		private EntityRef<Nop190_Country> _Nop190_Country;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnStateProvinceIDChanging(int value);
    partial void OnStateProvinceIDChanged();
    partial void OnCountryIDChanging(int value);
    partial void OnCountryIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnAbbreviationChanging(string value);
    partial void OnAbbreviationChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_StateProvince()
		{
			this._Nop190_Country = default(EntityRef<Nop190_Country>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StateProvinceID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int StateProvinceID
		{
			get
			{
				return this._StateProvinceID;
			}
			set
			{
				if ((this._StateProvinceID != value))
				{
					this.OnStateProvinceIDChanging(value);
					this.SendPropertyChanging();
					this._StateProvinceID = value;
					this.SendPropertyChanged("StateProvinceID");
					this.OnStateProvinceIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CountryID", DbType="Int NOT NULL")]
		public int CountryID
		{
			get
			{
				return this._CountryID;
			}
			set
			{
				if ((this._CountryID != value))
				{
					if (this._Nop190_Country.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCountryIDChanging(value);
					this.SendPropertyChanging();
					this._CountryID = value;
					this.SendPropertyChanged("CountryID");
					this.OnCountryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Abbreviation", DbType="NVarChar(30) NOT NULL", CanBeNull=false)]
		public string Abbreviation
		{
			get
			{
				return this._Abbreviation;
			}
			set
			{
				if ((this._Abbreviation != value))
				{
					this.OnAbbreviationChanging(value);
					this.SendPropertyChanging();
					this._Abbreviation = value;
					this.SendPropertyChanged("Abbreviation");
					this.OnAbbreviationChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Country_Nop190_StateProvince", Storage="_Nop190_Country", ThisKey="CountryID", OtherKey="CountryID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Country Nop190_Country
		{
			get
			{
				return this._Nop190_Country.Entity;
			}
			set
			{
				Nop190_Country previousValue = this._Nop190_Country.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Country.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Country.Entity = null;
						previousValue.Nop190_StateProvinces.Remove(this);
					}
					this._Nop190_Country.Entity = value;
					if ((value != null))
					{
						value.Nop190_StateProvinces.Add(this);
						this._CountryID = value.CountryID;
					}
					else
					{
						this._CountryID = default(int);
					}
					this.SendPropertyChanged("Nop190_Country");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_TaxCategory")]
	public partial class Nop190_TaxCategory : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _TaxCategoryID;
		
		private string _Name;
		
		private System.Nullable<int> _DisplayOrder;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private EntitySet<Nop190_TaxRate> _Nop190_TaxRates;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnTaxCategoryIDChanging(int value);
    partial void OnTaxCategoryIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDisplayOrderChanging(System.Nullable<int> value);
    partial void OnDisplayOrderChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    #endregion
		
		public Nop190_TaxCategory()
		{
			this._Nop190_TaxRates = new EntitySet<Nop190_TaxRate>(new Action<Nop190_TaxRate>(this.attach_Nop190_TaxRates), new Action<Nop190_TaxRate>(this.detach_Nop190_TaxRates));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaxCategoryID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int TaxCategoryID
		{
			get
			{
				return this._TaxCategoryID;
			}
			set
			{
				if ((this._TaxCategoryID != value))
				{
					this.OnTaxCategoryIDChanging(value);
					this.SendPropertyChanging();
					this._TaxCategoryID = value;
					this.SendPropertyChanged("TaxCategoryID");
					this.OnTaxCategoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int")]
		public System.Nullable<int> DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_TaxCategory_Nop190_TaxRate", Storage="_Nop190_TaxRates", ThisKey="TaxCategoryID", OtherKey="TaxCategoryID")]
		public EntitySet<Nop190_TaxRate> Nop190_TaxRates
		{
			get
			{
				return this._Nop190_TaxRates;
			}
			set
			{
				this._Nop190_TaxRates.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_TaxRates(Nop190_TaxRate entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_TaxCategory = this;
		}
		
		private void detach_Nop190_TaxRates(Nop190_TaxRate entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_TaxCategory = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_TaxProvider")]
	public partial class Nop190_TaxProvider : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _TaxProviderID;
		
		private string _Name;
		
		private string _Description;
		
		private string _ConfigureTemplatePath;
		
		private string _ClassName;
		
		private int _DisplayOrder;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnTaxProviderIDChanging(int value);
    partial void OnTaxProviderIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnDescriptionChanging(string value);
    partial void OnDescriptionChanged();
    partial void OnConfigureTemplatePathChanging(string value);
    partial void OnConfigureTemplatePathChanged();
    partial void OnClassNameChanging(string value);
    partial void OnClassNameChanged();
    partial void OnDisplayOrderChanging(int value);
    partial void OnDisplayOrderChanged();
    #endregion
		
		public Nop190_TaxProvider()
		{
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaxProviderID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int TaxProviderID
		{
			get
			{
				return this._TaxProviderID;
			}
			set
			{
				if ((this._TaxProviderID != value))
				{
					this.OnTaxProviderIDChanging(value);
					this.SendPropertyChanging();
					this._TaxProviderID = value;
					this.SendPropertyChanged("TaxProviderID");
					this.OnTaxProviderIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string Description
		{
			get
			{
				return this._Description;
			}
			set
			{
				if ((this._Description != value))
				{
					this.OnDescriptionChanging(value);
					this.SendPropertyChanging();
					this._Description = value;
					this.SendPropertyChanged("Description");
					this.OnDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ConfigureTemplatePath", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string ConfigureTemplatePath
		{
			get
			{
				return this._ConfigureTemplatePath;
			}
			set
			{
				if ((this._ConfigureTemplatePath != value))
				{
					this.OnConfigureTemplatePathChanging(value);
					this.SendPropertyChanging();
					this._ConfigureTemplatePath = value;
					this.SendPropertyChanged("ConfigureTemplatePath");
					this.OnConfigureTemplatePathChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ClassName", DbType="NVarChar(500) NOT NULL", CanBeNull=false)]
		public string ClassName
		{
			get
			{
				return this._ClassName;
			}
			set
			{
				if ((this._ClassName != value))
				{
					this.OnClassNameChanging(value);
					this.SendPropertyChanging();
					this._ClassName = value;
					this.SendPropertyChanged("ClassName");
					this.OnClassNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayOrder", DbType="Int NOT NULL")]
		public int DisplayOrder
		{
			get
			{
				return this._DisplayOrder;
			}
			set
			{
				if ((this._DisplayOrder != value))
				{
					this.OnDisplayOrderChanging(value);
					this.SendPropertyChanging();
					this._DisplayOrder = value;
					this.SendPropertyChanged("DisplayOrder");
					this.OnDisplayOrderChanged();
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_TaxRate")]
	public partial class Nop190_TaxRate : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _TaxRateID;
		
		private int _TaxCategoryID;
		
		private int _CountryID;
		
		private int _StateProvinceID;
		
		private string _Zip;
		
		private decimal _Percentage;
		
		private EntityRef<Nop190_Country> _Nop190_Country;
		
		private EntityRef<Nop190_TaxCategory> _Nop190_TaxCategory;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnTaxRateIDChanging(int value);
    partial void OnTaxRateIDChanged();
    partial void OnTaxCategoryIDChanging(int value);
    partial void OnTaxCategoryIDChanged();
    partial void OnCountryIDChanging(int value);
    partial void OnCountryIDChanged();
    partial void OnStateProvinceIDChanging(int value);
    partial void OnStateProvinceIDChanged();
    partial void OnZipChanging(string value);
    partial void OnZipChanged();
    partial void OnPercentageChanging(decimal value);
    partial void OnPercentageChanged();
    #endregion
		
		public Nop190_TaxRate()
		{
			this._Nop190_Country = default(EntityRef<Nop190_Country>);
			this._Nop190_TaxCategory = default(EntityRef<Nop190_TaxCategory>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaxRateID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int TaxRateID
		{
			get
			{
				return this._TaxRateID;
			}
			set
			{
				if ((this._TaxRateID != value))
				{
					this.OnTaxRateIDChanging(value);
					this.SendPropertyChanging();
					this._TaxRateID = value;
					this.SendPropertyChanged("TaxRateID");
					this.OnTaxRateIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaxCategoryID", DbType="Int NOT NULL")]
		public int TaxCategoryID
		{
			get
			{
				return this._TaxCategoryID;
			}
			set
			{
				if ((this._TaxCategoryID != value))
				{
					if (this._Nop190_TaxCategory.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnTaxCategoryIDChanging(value);
					this.SendPropertyChanging();
					this._TaxCategoryID = value;
					this.SendPropertyChanged("TaxCategoryID");
					this.OnTaxCategoryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CountryID", DbType="Int NOT NULL")]
		public int CountryID
		{
			get
			{
				return this._CountryID;
			}
			set
			{
				if ((this._CountryID != value))
				{
					if (this._Nop190_Country.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnCountryIDChanging(value);
					this.SendPropertyChanging();
					this._CountryID = value;
					this.SendPropertyChanged("CountryID");
					this.OnCountryIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StateProvinceID", DbType="Int NOT NULL")]
		public int StateProvinceID
		{
			get
			{
				return this._StateProvinceID;
			}
			set
			{
				if ((this._StateProvinceID != value))
				{
					this.OnStateProvinceIDChanging(value);
					this.SendPropertyChanging();
					this._StateProvinceID = value;
					this.SendPropertyChanged("StateProvinceID");
					this.OnStateProvinceIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Zip", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
		public string Zip
		{
			get
			{
				return this._Zip;
			}
			set
			{
				if ((this._Zip != value))
				{
					this.OnZipChanging(value);
					this.SendPropertyChanging();
					this._Zip = value;
					this.SendPropertyChanged("Zip");
					this.OnZipChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Percentage", DbType="Decimal(18,4) NOT NULL")]
		public decimal Percentage
		{
			get
			{
				return this._Percentage;
			}
			set
			{
				if ((this._Percentage != value))
				{
					this.OnPercentageChanging(value);
					this.SendPropertyChanging();
					this._Percentage = value;
					this.SendPropertyChanged("Percentage");
					this.OnPercentageChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Country_Nop190_TaxRate", Storage="_Nop190_Country", ThisKey="CountryID", OtherKey="CountryID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Country Nop190_Country
		{
			get
			{
				return this._Nop190_Country.Entity;
			}
			set
			{
				Nop190_Country previousValue = this._Nop190_Country.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Country.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Country.Entity = null;
						previousValue.Nop190_TaxRates.Remove(this);
					}
					this._Nop190_Country.Entity = value;
					if ((value != null))
					{
						value.Nop190_TaxRates.Add(this);
						this._CountryID = value.CountryID;
					}
					else
					{
						this._CountryID = default(int);
					}
					this.SendPropertyChanged("Nop190_Country");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_TaxCategory_Nop190_TaxRate", Storage="_Nop190_TaxCategory", ThisKey="TaxCategoryID", OtherKey="TaxCategoryID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_TaxCategory Nop190_TaxCategory
		{
			get
			{
				return this._Nop190_TaxCategory.Entity;
			}
			set
			{
				Nop190_TaxCategory previousValue = this._Nop190_TaxCategory.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_TaxCategory.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_TaxCategory.Entity = null;
						previousValue.Nop190_TaxRates.Remove(this);
					}
					this._Nop190_TaxCategory.Entity = value;
					if ((value != null))
					{
						value.Nop190_TaxRates.Add(this);
						this._TaxCategoryID = value.TaxCategoryID;
					}
					else
					{
						this._TaxCategoryID = default(int);
					}
					this.SendPropertyChanged("Nop190_TaxCategory");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_TierPrice")]
	public partial class Nop190_TierPrice : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _TierPriceID;
		
		private int _ProductVariantID;
		
		private int _Quantity;
		
		private decimal _Price;
		
		private EntityRef<Nop190_ProductVariant> _Nop190_ProductVariant;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnTierPriceIDChanging(int value);
    partial void OnTierPriceIDChanged();
    partial void OnProductVariantIDChanging(int value);
    partial void OnProductVariantIDChanged();
    partial void OnQuantityChanging(int value);
    partial void OnQuantityChanged();
    partial void OnPriceChanging(decimal value);
    partial void OnPriceChanged();
    #endregion
		
		public Nop190_TierPrice()
		{
			this._Nop190_ProductVariant = default(EntityRef<Nop190_ProductVariant>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TierPriceID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int TierPriceID
		{
			get
			{
				return this._TierPriceID;
			}
			set
			{
				if ((this._TierPriceID != value))
				{
					this.OnTierPriceIDChanging(value);
					this.SendPropertyChanging();
					this._TierPriceID = value;
					this.SendPropertyChanged("TierPriceID");
					this.OnTierPriceIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductVariantID", DbType="Int NOT NULL")]
		public int ProductVariantID
		{
			get
			{
				return this._ProductVariantID;
			}
			set
			{
				if ((this._ProductVariantID != value))
				{
					if (this._Nop190_ProductVariant.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnProductVariantIDChanging(value);
					this.SendPropertyChanging();
					this._ProductVariantID = value;
					this.SendPropertyChanged("ProductVariantID");
					this.OnProductVariantIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Quantity", DbType="Int NOT NULL")]
		public int Quantity
		{
			get
			{
				return this._Quantity;
			}
			set
			{
				if ((this._Quantity != value))
				{
					this.OnQuantityChanging(value);
					this.SendPropertyChanging();
					this._Quantity = value;
					this.SendPropertyChanged("Quantity");
					this.OnQuantityChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Price", DbType="Money NOT NULL")]
		public decimal Price
		{
			get
			{
				return this._Price;
			}
			set
			{
				if ((this._Price != value))
				{
					this.OnPriceChanging(value);
					this.SendPropertyChanging();
					this._Price = value;
					this.SendPropertyChanged("Price");
					this.OnPriceChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_ProductVariant_Nop190_TierPrice", Storage="_Nop190_ProductVariant", ThisKey="ProductVariantID", OtherKey="ProductVariantId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_ProductVariant Nop190_ProductVariant
		{
			get
			{
				return this._Nop190_ProductVariant.Entity;
			}
			set
			{
				Nop190_ProductVariant previousValue = this._Nop190_ProductVariant.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_ProductVariant.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_ProductVariant.Entity = null;
						previousValue.Nop190_TierPrices.Remove(this);
					}
					this._Nop190_ProductVariant.Entity = value;
					if ((value != null))
					{
						value.Nop190_TierPrices.Add(this);
						this._ProductVariantID = value.ProductVariantId;
					}
					else
					{
						this._ProductVariantID = default(int);
					}
					this.SendPropertyChanged("Nop190_ProductVariant");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_Topic")]
	public partial class Nop190_Topic : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _TopicID;
		
		private string _Name;
		
		private bool _IsPasswordProtected;
		
		private string _Password;
		
		private bool _IncludeInSitemap;
		
		private EntitySet<Nop190_TopicLocalized> _Nop190_TopicLocalizeds;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnTopicIDChanging(int value);
    partial void OnTopicIDChanged();
    partial void OnNameChanging(string value);
    partial void OnNameChanged();
    partial void OnIsPasswordProtectedChanging(bool value);
    partial void OnIsPasswordProtectedChanged();
    partial void OnPasswordChanging(string value);
    partial void OnPasswordChanged();
    partial void OnIncludeInSitemapChanging(bool value);
    partial void OnIncludeInSitemapChanged();
    #endregion
		
		public Nop190_Topic()
		{
			this._Nop190_TopicLocalizeds = new EntitySet<Nop190_TopicLocalized>(new Action<Nop190_TopicLocalized>(this.attach_Nop190_TopicLocalizeds), new Action<Nop190_TopicLocalized>(this.detach_Nop190_TopicLocalizeds));
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TopicID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int TopicID
		{
			get
			{
				return this._TopicID;
			}
			set
			{
				if ((this._TopicID != value))
				{
					this.OnTopicIDChanging(value);
					this.SendPropertyChanging();
					this._TopicID = value;
					this.SendPropertyChanged("TopicID");
					this.OnTopicIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				if ((this._Name != value))
				{
					this.OnNameChanging(value);
					this.SendPropertyChanging();
					this._Name = value;
					this.SendPropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsPasswordProtected", DbType="Bit NOT NULL")]
		public bool IsPasswordProtected
		{
			get
			{
				return this._IsPasswordProtected;
			}
			set
			{
				if ((this._IsPasswordProtected != value))
				{
					this.OnIsPasswordProtectedChanging(value);
					this.SendPropertyChanging();
					this._IsPasswordProtected = value;
					this.SendPropertyChanged("IsPasswordProtected");
					this.OnIsPasswordProtectedChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Password", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string Password
		{
			get
			{
				return this._Password;
			}
			set
			{
				if ((this._Password != value))
				{
					this.OnPasswordChanging(value);
					this.SendPropertyChanging();
					this._Password = value;
					this.SendPropertyChanged("Password");
					this.OnPasswordChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IncludeInSitemap", DbType="Bit NOT NULL")]
		public bool IncludeInSitemap
		{
			get
			{
				return this._IncludeInSitemap;
			}
			set
			{
				if ((this._IncludeInSitemap != value))
				{
					this.OnIncludeInSitemapChanging(value);
					this.SendPropertyChanging();
					this._IncludeInSitemap = value;
					this.SendPropertyChanged("IncludeInSitemap");
					this.OnIncludeInSitemapChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Topic_Nop190_TopicLocalized", Storage="_Nop190_TopicLocalizeds", ThisKey="TopicID", OtherKey="TopicID")]
		public EntitySet<Nop190_TopicLocalized> Nop190_TopicLocalizeds
		{
			get
			{
				return this._Nop190_TopicLocalizeds;
			}
			set
			{
				this._Nop190_TopicLocalizeds.Assign(value);
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
		
		private void attach_Nop190_TopicLocalizeds(Nop190_TopicLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Topic = this;
		}
		
		private void detach_Nop190_TopicLocalizeds(Nop190_TopicLocalized entity)
		{
			this.SendPropertyChanging();
			entity.Nop190_Topic = null;
		}
	}
	
	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Nop_TopicLocalized")]
	public partial class Nop190_TopicLocalized : INotifyPropertyChanging, INotifyPropertyChanged
	{
		
		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
		
		private int _TopicLocalizedID;
		
		private int _TopicID;
		
		private int _LanguageID;
		
		private string _Title;
		
		private string _Body;
		
		private System.DateTime _CreatedOn;
		
		private System.DateTime _UpdatedOn;
		
		private string _MetaTitle;
		
		private string _MetaKeywords;
		
		private string _MetaDescription;
		
		private EntityRef<Nop190_Language> _Nop190_Language;
		
		private EntityRef<Nop190_Topic> _Nop190_Topic;
		
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnTopicLocalizedIDChanging(int value);
    partial void OnTopicLocalizedIDChanged();
    partial void OnTopicIDChanging(int value);
    partial void OnTopicIDChanged();
    partial void OnLanguageIDChanging(int value);
    partial void OnLanguageIDChanged();
    partial void OnTitleChanging(string value);
    partial void OnTitleChanged();
    partial void OnBodyChanging(string value);
    partial void OnBodyChanged();
    partial void OnCreatedOnChanging(System.DateTime value);
    partial void OnCreatedOnChanged();
    partial void OnUpdatedOnChanging(System.DateTime value);
    partial void OnUpdatedOnChanged();
    partial void OnMetaTitleChanging(string value);
    partial void OnMetaTitleChanged();
    partial void OnMetaKeywordsChanging(string value);
    partial void OnMetaKeywordsChanged();
    partial void OnMetaDescriptionChanging(string value);
    partial void OnMetaDescriptionChanged();
    #endregion
		
		public Nop190_TopicLocalized()
		{
			this._Nop190_Language = default(EntityRef<Nop190_Language>);
			this._Nop190_Topic = default(EntityRef<Nop190_Topic>);
			OnCreated();
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TopicLocalizedID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
		public int TopicLocalizedID
		{
			get
			{
				return this._TopicLocalizedID;
			}
			set
			{
				if ((this._TopicLocalizedID != value))
				{
					this.OnTopicLocalizedIDChanging(value);
					this.SendPropertyChanging();
					this._TopicLocalizedID = value;
					this.SendPropertyChanged("TopicLocalizedID");
					this.OnTopicLocalizedIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TopicID", DbType="Int NOT NULL")]
		public int TopicID
		{
			get
			{
				return this._TopicID;
			}
			set
			{
				if ((this._TopicID != value))
				{
					if (this._Nop190_Topic.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnTopicIDChanging(value);
					this.SendPropertyChanging();
					this._TopicID = value;
					this.SendPropertyChanged("TopicID");
					this.OnTopicIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LanguageID", DbType="Int NOT NULL")]
		public int LanguageID
		{
			get
			{
				return this._LanguageID;
			}
			set
			{
				if ((this._LanguageID != value))
				{
					if (this._Nop190_Language.HasLoadedOrAssignedValue)
					{
						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
					}
					this.OnLanguageIDChanging(value);
					this.SendPropertyChanging();
					this._LanguageID = value;
					this.SendPropertyChanged("LanguageID");
					this.OnLanguageIDChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Title", DbType="NVarChar(200) NOT NULL", CanBeNull=false)]
		public string Title
		{
			get
			{
				return this._Title;
			}
			set
			{
				if ((this._Title != value))
				{
					this.OnTitleChanging(value);
					this.SendPropertyChanging();
					this._Title = value;
					this.SendPropertyChanged("Title");
					this.OnTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Body", DbType="NVarChar(MAX) NOT NULL", CanBeNull=false)]
		public string Body
		{
			get
			{
				return this._Body;
			}
			set
			{
				if ((this._Body != value))
				{
					this.OnBodyChanging(value);
					this.SendPropertyChanging();
					this._Body = value;
					this.SendPropertyChanged("Body");
					this.OnBodyChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime CreatedOn
		{
			get
			{
				return this._CreatedOn;
			}
			set
			{
				if ((this._CreatedOn != value))
				{
					this.OnCreatedOnChanging(value);
					this.SendPropertyChanging();
					this._CreatedOn = value;
					this.SendPropertyChanged("CreatedOn");
					this.OnCreatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatedOn", DbType="DateTime NOT NULL")]
		public System.DateTime UpdatedOn
		{
			get
			{
				return this._UpdatedOn;
			}
			set
			{
				if ((this._UpdatedOn != value))
				{
					this.OnUpdatedOnChanging(value);
					this.SendPropertyChanging();
					this._UpdatedOn = value;
					this.SendPropertyChanged("UpdatedOn");
					this.OnUpdatedOnChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaTitle", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaTitle
		{
			get
			{
				return this._MetaTitle;
			}
			set
			{
				if ((this._MetaTitle != value))
				{
					this.OnMetaTitleChanging(value);
					this.SendPropertyChanging();
					this._MetaTitle = value;
					this.SendPropertyChanged("MetaTitle");
					this.OnMetaTitleChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaKeywords", DbType="NVarChar(400) NOT NULL", CanBeNull=false)]
		public string MetaKeywords
		{
			get
			{
				return this._MetaKeywords;
			}
			set
			{
				if ((this._MetaKeywords != value))
				{
					this.OnMetaKeywordsChanging(value);
					this.SendPropertyChanging();
					this._MetaKeywords = value;
					this.SendPropertyChanged("MetaKeywords");
					this.OnMetaKeywordsChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MetaDescription", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
		public string MetaDescription
		{
			get
			{
				return this._MetaDescription;
			}
			set
			{
				if ((this._MetaDescription != value))
				{
					this.OnMetaDescriptionChanging(value);
					this.SendPropertyChanging();
					this._MetaDescription = value;
					this.SendPropertyChanged("MetaDescription");
					this.OnMetaDescriptionChanged();
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Language_Nop190_TopicLocalized", Storage="_Nop190_Language", ThisKey="LanguageID", OtherKey="LanguageId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Language Nop190_Language
		{
			get
			{
				return this._Nop190_Language.Entity;
			}
			set
			{
				Nop190_Language previousValue = this._Nop190_Language.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Language.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Language.Entity = null;
						previousValue.Nop190_TopicLocalizeds.Remove(this);
					}
					this._Nop190_Language.Entity = value;
					if ((value != null))
					{
						value.Nop190_TopicLocalizeds.Add(this);
						this._LanguageID = value.LanguageId;
					}
					else
					{
						this._LanguageID = default(int);
					}
					this.SendPropertyChanged("Nop190_Language");
				}
			}
		}
		
		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Nop190_Topic_Nop190_TopicLocalized", Storage="_Nop190_Topic", ThisKey="TopicID", OtherKey="TopicID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
		public Nop190_Topic Nop190_Topic
		{
			get
			{
				return this._Nop190_Topic.Entity;
			}
			set
			{
				Nop190_Topic previousValue = this._Nop190_Topic.Entity;
				if (((previousValue != value) 
							|| (this._Nop190_Topic.HasLoadedOrAssignedValue == false)))
				{
					this.SendPropertyChanging();
					if ((previousValue != null))
					{
						this._Nop190_Topic.Entity = null;
						previousValue.Nop190_TopicLocalizeds.Remove(this);
					}
					this._Nop190_Topic.Entity = value;
					if ((value != null))
					{
						value.Nop190_TopicLocalizeds.Add(this);
						this._TopicID = value.TopicID;
					}
					else
					{
						this._TopicID = default(int);
					}
					this.SendPropertyChanged("Nop190_Topic");
				}
			}
		}
		
		public event PropertyChangingEventHandler PropertyChanging;
		
		public event PropertyChangedEventHandler PropertyChanged;
		
		protected virtual void SendPropertyChanging()
		{
			if ((this.PropertyChanging != null))
			{
				this.PropertyChanging(this, emptyChangingEventArgs);
			}
		}
		
		protected virtual void SendPropertyChanged(String propertyName)
		{
			if ((this.PropertyChanged != null))
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
}
#pragma warning restore 1591
