Esempio n. 1
0
        public SuppliersMapper()
        {
            Table("Suppliers");

            OptimisticLock.None();

            DynamicUpdate();
            Id(it => it.SupplierID, "SupplierID").GeneratedBy.Native("Suppliers_SEQ").CustomSqlType("int");
            Map(it => it.Address, "Address").Nullable().CustomSqlType("nvarchar(60)").Length(60);
            Map(it => it.City, "City").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            Map(it => it.CompanyName, "CompanyName").Not.Nullable().CustomSqlType("nvarchar(40)").Length(40);
            Map(it => it.ContactName, "ContactName").Nullable().CustomSqlType("nvarchar(30)").Length(30);
            Map(it => it.ContactTitle, "ContactTitle").Nullable().CustomSqlType("nvarchar(30)").Length(30);
            Map(it => it.Country, "Country").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            Map(it => it.Fax, "Fax").Nullable().CustomSqlType("nvarchar(24)").Length(24);
            Map(it => it.HomePage, "HomePage").Nullable().CustomSqlType("ntext").Length(1073741823);
            Map(it => it.Phone, "Phone").Nullable().CustomSqlType("nvarchar(24)").Length(24);
            Map(it => it.PostalCode, "PostalCode").Nullable().CustomSqlType("nvarchar(10)").Length(10);
            HasMany(x => x.Productss)
            .KeyColumns.Add("SupplierID")
            .ForeignKeyConstraintName("FK_Products_Suppliers")
            .Inverse()
            .Cascade.Delete()
            .LazyLoad()
            .Fetch.Select()
            .AsBag();
            Map(it => it.Region, "Region").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            this.CompleteMappings();
        }
        /// <summary>Initializes a new instance of the <see cref="NodeRelationTagMap"/> class.</summary>
        public NodeRelationTagMap()
        {
            Table("NodeRelationTag");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.Name).Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Length(64)
            .Index(this.GenerateIndexName(x => x.Name));

            Map(x => x.Value).Access.CamelCaseField(Prefix.Underscore)
            .Index(this.GenerateIndexName(x => x.Value));

            References(x => x.NodeRelation)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Not.Nullable()
            .Fetch.Select()
            .LazyLoad()
            .Column("NodeRelationId")
            .Index(this.GenerateIndexName(x => x.NodeRelation));

            AdditionalMappingInfo();
        }
Esempio n. 3
0
        public StudentMapper()
        {
            Table("STUDENT");

            OptimisticLock.None();

            DynamicUpdate();
            Id(it => it.StudentId, "STUDENT_ID").GeneratedBy.Native("STUDENT_SEQ").Index("PK_STUDENT").CustomSqlType("int");
            HasManyToMany(x => x.Classrooms)
            .ParentKeyColumns.Add("STUDENT_ID", p => p.UniqueKey("PK_STUDENT_CLASSROOM"))
            .Table("STUDENT_CLASSROOM")
            .ChildKeyColumns.Add("CLASSROOM_ID", p => p.UniqueKey("PK_STUDENT_CLASSROOM"))
            .ForeignKeyConstraintNames("FK_STUDENT_TO_STUDENT_CLASSROOM", "FK_CLASSROOM_TO_STUDENT_CLASSROOM")
            //.LazyLoad()
            //.Fetch.Select()
            .Not.LazyLoad()
            .Fetch.Join()
            .AsBag();
            References(x => x.Language)
            .ForeignKey("FK_LANGUAGE_TO_STUDENT")
            .Columns("LANGUAGE_ID")
            .Fetch.Join()
            .Cascade.None();
            Map(it => it.FullName, "FULL_NAME").Not.Nullable().CustomSqlType("VARCHAR(300)");
            this.CompleteMappings();
        }
        /// <summary>Initializes a new instance of the <see cref="NodeVersionStatusHistoryMap"/> class.</summary>
        public NodeVersionStatusHistoryMap()
        {
            Table("NodeVersionStatusHistory");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.Date).Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.Date));

            References(x => x.NodeVersion)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Not.Nullable()
            .Fetch.Select()
            .LazyLoad()             // Reverse navigator so lazy-load
            .Column("NodeVersionId")
            .Index(this.GenerateIndexName(x => x.NodeVersionStatusType));

            References(x => x.NodeVersionStatusType)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Not.Nullable()
            .Fetch.Select()
            .Column("NodeVersionStatusTypeId")
            .Index(this.GenerateIndexName(x => x.NodeVersionStatusType));

            AdditionalMappingInfo();
        }
Esempio n. 5
0
        public ProductsMapper()
        {
            Table("Products");

            OptimisticLock.None();

            DynamicUpdate();
            Id(it => it.ProductID, "ProductID").GeneratedBy.Native("Products_SEQ").CustomSqlType("int");
            References(x => x.Categories)
            .ForeignKey("FK_Products_Categories")
            .Columns("CategoryID")
            .Fetch.Join()
            .Cascade.None();
            Map(it => it.Discontinued, "Discontinued").Not.Nullable().CustomSqlType("bit");
            HasMany(x => x.OrderDetailss)
            .KeyColumns.Add("ProductID")
            .ForeignKeyConstraintName("FK_Order_Details_Products")
            .Inverse()
            .Cascade.Delete()
            .LazyLoad()
            .Fetch.Select()
            .AsBag();
            Map(it => it.ProductName, "ProductName").Not.Nullable().CustomSqlType("nvarchar(40)").Length(40);
            Map(it => it.QuantityPerUnit, "QuantityPerUnit").Nullable().CustomSqlType("nvarchar(20)").Length(20);
            Map(it => it.ReorderLevel, "ReorderLevel").Nullable().CustomSqlType("smallint");
            References(x => x.Suppliers)
            .ForeignKey("FK_Products_Suppliers")
            .Columns("SupplierID")
            .Fetch.Join()
            .Cascade.None();
            Map(it => it.UnitPrice, "UnitPrice").Nullable().CustomSqlType("money");
            Map(it => it.UnitsInStock, "UnitsInStock").Nullable().CustomSqlType("smallint");
            Map(it => it.UnitsOnOrder, "UnitsOnOrder").Nullable().CustomSqlType("smallint");
            this.CompleteMappings();
        }
        /// <summary>Initializes a new instance of the <see cref="AttributeIntegerValueMap"/> class.</summary>
        public AttributeIntegerValueMap()
        {
            Table("AttributeIntegerValue");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.Value).Access.CamelCaseField(Prefix.Underscore)
            .Index(this.GenerateIndexName(x => x.Value));

            Map(x => x.ValueKey).Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.ValueKey));

            References(x => x.Attribute)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Fetch.Select()
            .Not.Nullable()
            .Column("AttributeId")
            .Index(this.GenerateIndexName(x => x.Attribute));

            References(x => x.Locale)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()     // TODO: This should be SaveUpdate() but need to fix mapping code; using Merge doesn't fire if cascade is SaveOrUpdate
            .Fetch.Select()
            .Not.Nullable()
            .Column("LocaleId")
            .Index(this.GenerateIndexName(x => x.Locale));

            AdditionalMappingInfo();
        }
Esempio n. 7
0
        public CustomersMapper()
        {
            Table("Customers");

            OptimisticLock.None();

            DynamicUpdate();
            Id(it => it.CustomerID, "CustomerID").GeneratedBy.Assigned().CustomSqlType("nchar(5)").Length(5);
            Map(it => it.Address, "Address").Nullable().CustomSqlType("nvarchar(60)").Length(60);
            Map(it => it.City, "City").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            Map(it => it.CompanyName, "CompanyName").Not.Nullable().CustomSqlType("nvarchar(40)").Length(40);
            Map(it => it.ContactName, "ContactName").Nullable().CustomSqlType("nvarchar(30)").Length(30);
            Map(it => it.ContactTitle, "ContactTitle").Nullable().CustomSqlType("nvarchar(30)").Length(30);
            Map(it => it.Country, "Country").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            Map(it => it.Fax, "Fax").Nullable().CustomSqlType("nvarchar(24)").Length(24);
            HasMany(x => x.Orderss)
            .KeyColumns.Add("CustomerID")
            .ForeignKeyConstraintName("FK_Orders_Customers")
            .Inverse()
            .Cascade.Delete()
            .LazyLoad()
            .Fetch.Select()
            .AsBag();
            Map(it => it.Phone, "Phone").Nullable().CustomSqlType("nvarchar(24)").Length(24);
            Map(it => it.PostalCode, "PostalCode").Nullable().CustomSqlType("nvarchar(10)").Length(10);
            Map(it => it.Region, "Region").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            this.CompleteMappings();
        }
Esempio n. 8
0
        public CompanyMap()
        {
            Table("[dbo].[companies]");
            OptimisticLock.None();
            LazyLoad();

            Id(x => x.Id).GeneratedBy.Identity();
            Map(x => x.Name);
            Map(x => x.Category);
            Map(x => x.Symbol);
        }
Esempio n. 9
0
        /// <summary>Initializes a new instance of the <see cref="NodeVersionStatusTypeMap"/> class.</summary>
        public NodeVersionStatusTypeMap()
        {
            Table("NodeVersionStatusType");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            //NaturalId().Property(x => x.Name);

            Map(x => x.IsSystem).Access.CamelCaseField(Prefix.Underscore).Not.Nullable();

            Map(x => x.Name).Access.CamelCaseField(Prefix.Underscore);

            Map(x => x.Alias).Access.CamelCaseField(Prefix.Underscore)
            .Length(16)
            .Unique()
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.Alias));

            HasMany(x => x.NodeVersionSchedules)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select()    // This is a select, not a join, because it's common that this type (NodeVersionStatusType) is included in other queries and we don't want that to cascade to a left outer join including NodeVersionSchedules
            .AsSet()
            .Inverse()
            .LazyLoad()     // Reverse navigator, so lazy-load
            //.KeyColumns.Add("NodeVersionStatusTypeId");
            .Key(x =>
            {
                x.Column("NodeVersionStatusTypeId");
                x.ForeignKey(this.GenerateFkName(y => y.NodeVersionSchedules));
            });


            HasMany(x => x.NodeVersionStatuses)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select()                     // This is a select, not a join, because it's common that this type (NodeVersionStatusType) is included in other queries and we don't want that to cascade to a left outer join including NodeVersionStatuses
            .AsSet()
            .Inverse()
            .LazyLoad()                     // Reverse navigator, so lazy-load
            //.KeyColumns.Add("NodeVersionStatusTypeId");
            .Key(x =>
            {
                x.Column("NodeVersionStatusTypeId");
                x.ForeignKey(this.GenerateFkName(y => y.NodeVersionStatuses));
            });

            AdditionalMappingInfo();
        }
Esempio n. 10
0
        public ContatoMapper()
        {
            Table("Contato");

            OptimisticLock.None();

            DynamicUpdate();
            Id(it => it.Id, "Id").GeneratedBy.Native("CLASSROOM_SEQ").Index("PK_CLASSROOM").CustomSqlType("int");
            Map(it => it.Nome, "Nome").Not.Nullable().CustomSqlType("VARCHAR(100)");
            Map(it => it.Telefone, "Telefone").Not.Nullable().CustomSqlType("VARCHAR(Max)");
            Map(it => it.Email, "Email").CustomSqlType("VARCHAR(Max)");
            Map(it => it.Endereco, "Endereco").CustomSqlType("VARCHAR(250)");
            Map(it => it.Empresa, "Empresa").CustomSqlType("VARCHAR(250)");
            this.CompleteMappings();
        }
Esempio n. 11
0
        public OrderDetailsMapper()
        {
            Table("OrderDetails");

            OptimisticLock.None();

            DynamicUpdate();
            CompositeId()
            .KeyReference(it => it.Orders, "OrderID")
            .KeyReference(it => it.Products, "ProductID");
            Map(it => it.Discount, "Discount").Not.Nullable().CustomSqlType("real");
            Map(it => it.Quantity, "Quantity").Not.Nullable().CustomSqlType("smallint");
            Map(it => it.UnitPrice, "UnitPrice").Not.Nullable().CustomSqlType("money");
            this.CompleteMappings();
        }
Esempio n. 12
0
        public EmployeesMapper()
        {
            Table("Employees");

            OptimisticLock.None();

            DynamicUpdate();
            Id(it => it.EmployeeID, "EmployeeID").GeneratedBy.Native("Employees_SEQ").CustomSqlType("int");
            Map(it => it.Address, "Address").Nullable().CustomSqlType("nvarchar(60)").Length(60);
            Map(it => it.BirthDate, "BirthDate").Nullable().CustomSqlType("datetime");
            HasMany(x => x.Child)
            .KeyColumns.Add("ReportsTo")
            .ForeignKeyConstraintName("FK_Employees_Employees")
            .Inverse()
            .Cascade.Delete()
            .LazyLoad()
            .Fetch.Select()
            .AsBag();
            Map(it => it.City, "City").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            Map(it => it.Country, "Country").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            Map(it => it.Extension, "Extension").Nullable().CustomSqlType("nvarchar(4)").Length(4);
            Map(it => it.FirstName, "FirstName").Not.Nullable().CustomSqlType("nvarchar(10)").Length(10);
            Map(it => it.HireDate, "HireDate").Nullable().CustomSqlType("datetime");
            Map(it => it.HomePhone, "HomePhone").Nullable().CustomSqlType("nvarchar(24)").Length(24);
            Map(it => it.LastName, "LastName").Not.Nullable().CustomSqlType("nvarchar(20)").Length(20);
            Map(it => it.Notes, "Notes").Nullable().CustomSqlType("ntext").Length(1073741823);
            HasMany(x => x.Orderss)
            .KeyColumns.Add("EmployeeID")
            .ForeignKeyConstraintName("FK_Orders_Employees")
            .Inverse()
            .Cascade.Delete()
            .LazyLoad()
            .Fetch.Select()
            .AsBag();
            References(x => x.Parent)
            .ForeignKey("FK_Employees_Employees")
            .Columns("ReportsTo")
            .Fetch.Join()
            .Cascade.None();
            Map(it => it.Photo, "Photo").Nullable().CustomSqlType("image");
            Map(it => it.PhotoPath, "PhotoPath").Nullable().CustomSqlType("nvarchar(255)").Length(255);
            Map(it => it.PostalCode, "PostalCode").Nullable().CustomSqlType("nvarchar(10)").Length(10);
            Map(it => it.Region, "Region").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            Map(it => it.Title, "Title").Nullable().CustomSqlType("nvarchar(30)").Length(30);
            Map(it => it.TitleOfCourtesy, "TitleOfCourtesy").Nullable().CustomSqlType("nvarchar(25)").Length(25);
            this.CompleteMappings();
        }
Esempio n. 13
0
        public OrdersMapper()
        {
            Table("Orders");

            OptimisticLock.None();

            DynamicUpdate();
            Id(it => it.OrderID, "OrderID").GeneratedBy.Native("Orders_SEQ").CustomSqlType("int");
            References(x => x.Customers)
            .ForeignKey("FK_Orders_Customers")
            .Columns("CustomerID")
            .Fetch.Join()
            .Cascade.None();
            References(x => x.Employees)
            .ForeignKey("FK_Orders_Employees")
            .Columns("EmployeeID")
            .Fetch.Join()
            .Cascade.None();
            Map(it => it.Freight, "Freight").Nullable().CustomSqlType("money");
            Map(it => it.OrderDate, "OrderDate").Nullable().CustomSqlType("datetime");
            HasMany(x => x.OrderDetailss)
            .KeyColumns.Add("OrderID")
            .ForeignKeyConstraintName("FK_Order_Details_Orders")
            .Inverse()
            .Cascade.Delete()
            .LazyLoad()
            .Fetch.Select()
            .AsBag();
            Map(it => it.RequiredDate, "RequiredDate").Nullable().CustomSqlType("datetime");
            Map(it => it.ShipAddress, "ShipAddress").Nullable().CustomSqlType("nvarchar(60)").Length(60);
            Map(it => it.ShipCity, "ShipCity").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            Map(it => it.ShipCountry, "ShipCountry").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            Map(it => it.ShipName, "ShipName").Nullable().CustomSqlType("nvarchar(40)").Length(40);
            Map(it => it.ShippedDate, "ShippedDate").Nullable().CustomSqlType("datetime");
            References(x => x.Shippers)
            .ForeignKey("FK_Orders_Shippers")
            .Columns("ShipVia")
            .Fetch.Join()
            .Cascade.None();
            Map(it => it.ShipPostalCode, "ShipPostalCode").Nullable().CustomSqlType("nvarchar(10)").Length(10);
            Map(it => it.ShipRegion, "ShipRegion").Nullable().CustomSqlType("nvarchar(15)").Length(15);
            this.CompleteMappings();
        }
        public ClassroomMapper()
        {
            Table("CLASSROOM");

            OptimisticLock.None();

            DynamicUpdate();
            Id(it => it.ClassroomId, "CLASSROOM_ID").GeneratedBy.Native("CLASSROOM_SEQ").Index("PK_CLASSROOM").CustomSqlType("int");
            HasManyToMany(x => x.Students)
            .ParentKeyColumns.Add("CLASSROOM_ID")
            .Table("STUDENT_CLASSROOM")
            .ChildKeyColumns.Add("STUDENT_ID")
            .ForeignKeyConstraintNames("FK_CLASSROOM_TO_STUDENT_CLASSROOM", "FK_STUDENT_TO_STUDENT_CLASSROOM")
            .LazyLoad()
            .Fetch.Select()
            .AsBag();
            Map(it => it.Name, "NAME").Not.Nullable().CustomSqlType("VARCHAR(100)");
            this.CompleteMappings();
        }
Esempio n. 15
0
        public LanguageMapper()
        {
            Table("LANGUAGE");

            OptimisticLock.None();

            DynamicUpdate();
            Id(it => it.LanguageId, "LANGUAGE_ID").CustomSqlType("CHAR(2)").Index("PK_STUDENT");
            HasMany(x => x.Students)
            .KeyColumns.Add("LANGUAGE_ID")
            .ForeignKeyConstraintName("FK_LANGUAGE_TO_STUDENT")
            .Inverse()
            .Cascade.Delete()
            .LazyLoad()
            .Fetch.Select()
            .AsBag();
            Map(it => it.Name, "NAME").Not.Nullable().CustomSqlType("VARCHAR(300)");
            this.CompleteMappings();
        }
        /// <summary>Initializes a new instance of the <see cref="NodeRelationTypeMap"/> class.</summary>
        public NodeRelationTypeMap()
        {
            Table("NodeRelationType");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.Alias)
            .Not.Nullable()
            .Unique()
            .Length(64)
            .Index(this.GenerateIndexName(x => x.Alias))
            .Access.CamelCaseField(Prefix.Underscore);

            //NaturalId().Property(x => x.Alias);

            //Map(x => x.Alias).Access.CamelCaseField(Prefix.Underscore);
            Map(x => x.Description).CustomType("StringClob").Access.CamelCaseField(Prefix.Underscore);

            Map(x => x.Name).Access.CamelCaseField(Prefix.Underscore);

            HasMany(x => x.NodeRelations)
            .Access.CamelCaseField(Prefix.Underscore)
            //.Cascade.MergeSaveAllDeleteOrphan()
            .Cascade.All()
            .Fetch.Select()
            .AsSet()
            .Inverse()
            .LazyLoad()             // Reverse navigator, so lazy-load
            //.KeyColumns.Add("NodeRelationTypeId")
            .Key(x =>
            {
                x.Column("NodeRelationTypeId");
                x.ForeignKey(this.GenerateFkName(y => y.NodeRelations));
            })
            .Cache.IncludeAll().ReadWrite();

            AdditionalMappingInfo();
        }
Esempio n. 17
0
        public ShippersMapper()
        {
            Table("Shippers");

            OptimisticLock.None();

            DynamicUpdate();
            Id(it => it.ShipperID, "ShipperID").GeneratedBy.Native("Shippers_SEQ").CustomSqlType("int");
            Map(it => it.CompanyName, "CompanyName").Not.Nullable().CustomSqlType("nvarchar(40)").Length(40);
            HasMany(x => x.Orderss)
            .KeyColumns.Add("ShipVia")
            .ForeignKeyConstraintName("FK_Orders_Shippers")
            .Inverse()
            .Cascade.Delete()
            .LazyLoad()
            .Fetch.Select()
            .AsBag();
            Map(it => it.Phone, "Phone").Nullable().CustomSqlType("nvarchar(24)").Length(24);
            this.CompleteMappings();
        }
Esempio n. 18
0
        public CategoriesMapper()
        {
            Table("Categories");

            OptimisticLock.None();

            DynamicUpdate();
            Id(it => it.CategoryID, "CategoryID").GeneratedBy.Native("Categories_SEQ").CustomSqlType("int");
            Map(it => it.CategoryName, "CategoryName").Not.Nullable().CustomSqlType("nvarchar(15)").Length(15);
            Map(it => it.Description, "Description").Nullable().CustomSqlType("ntext").Length(1073741823);
            Map(it => it.Picture, "Picture").Nullable().CustomSqlType("image");
            HasMany(x => x.Productss)
            .KeyColumns.Add("CategoryID")
            .ForeignKeyConstraintName("FK_Products_Categories")
            .Inverse()
            .Cascade.Delete()
            .LazyLoad()
            .Fetch.Select()
            .AsBag();
            this.CompleteMappings();
        }
Esempio n. 19
0
        /// <summary>Initializes a new instance of the <see cref="AttributeTypeMap"/> class.</summary>
        public AttributeTypeMap()
        {
            Table("AttributeType");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.Alias)
            .Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.Alias));

            Map(x => x.Description).CustomType("StringClob").Access.CamelCaseField(Prefix.Underscore);
            Map(x => x.Name).Access.CamelCaseField(Prefix.Underscore);
            Map(x => x.PersistenceTypeProvider).Access.CamelCaseField(Prefix.Underscore);
            Map(x => x.RenderTypeProvider).Access.CamelCaseField(Prefix.Underscore);
            Map(x => x.XmlConfiguration).CustomType("StringClob").Access.CamelCaseField(Prefix.Underscore);

            //NOTE: This was commented out for some reason, i had to uncomment it so that when deleting an Attribute type (data type)
            // the changes cascade to the entity... without this when you reload the entity there will ben an exception, plus i'm pretty
            // sure this makes sense here. SD
            HasMany(x => x.AttributeDefinitions)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.DeleteOrphan()     // APN changed to delete orphan so saving an AttributeType only causes deletions to AttributeDefinitions, not saves
            .Fetch.Join()
            .AsSet()
            .Inverse()
            .LazyLoad()     // Reverse navigator so lazy-load
            //.KeyColumns.Add("AttributeTypeId");
            .Key(x =>
            {
                x.Column("AttributeTypeId");
                x.ForeignKey(this.GenerateFkName(y => y.AttributeDefinitions));
            });

            AdditionalMappingInfo();
        }
        /// <summary>Initializes a new instance of the <see cref="NodeRelationCacheMap"/> class.</summary>
        public NodeRelationCacheMap()
        {
            Table("NodeRelationCache");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.DistanceFromOriginal).Access.CamelCaseField(Prefix.Underscore);

            References(x => x.EndNode)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Fetch.Select()
            .Not.Nullable()
            .Column("EndNodeId")
            .Index(this.GenerateIndexName(x => x.EndNode));

            References(x => x.NodeRelation)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Fetch.Select()
            .Not.Nullable()
            .Column("NodeRelationId")
            .Index(this.GenerateIndexName(x => x.NodeRelation));

            References(x => x.StartNode)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Fetch.Select()
            .Not.Nullable()
            .Column("StartNodeId")
            .Index(this.GenerateIndexName(x => x.StartNode));

            AdditionalMappingInfo();
        }
        /// <summary>Initializes a new instance of the <see cref="AttributeStringValueMap"/> class.</summary>
        public AttributeStringValueMap()
        {
            Table("AttributeStringValue");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.Value).Access.CamelCaseField(Prefix.Underscore)
            .Index(this.GenerateIndexName(x => x.Value));

            Map(x => x.ValueKey).Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.ValueKey));


            References(x => x.Attribute)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Fetch.Select()
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.Attribute))
            .Column("AttributeId");

            References(x => x.Locale)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Fetch.Select()
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.Locale))
            .Column("LocaleId");

            AdditionalMappingInfo();
        }
        /// <summary>Initializes a new instance of the <see cref="AttributeSchemaDefinitionMap"/> class.</summary>
        public AttributeSchemaDefinitionMap()
        {
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("NodeId")
            .GeneratedBy.Foreign("Node")
            .Not.Nullable();

            //HasOne(x => x.Node)
            //    .Cascade.All()
            //    .Access.CamelCaseField(Prefix.Underscore)
            //    .ForeignKey(this.GenerateFkName(x => x.Node))
            //    .Fetch.Join()
            //    .LazyLoad(Laziness.False);

            References(x => x.Node)
            .Access.Property()
            .Cascade.All()
            .Column("NodeId")
            .ReadOnly()
            .Fetch.Join()
            .LazyLoad(Laziness.False)
            .Not.Nullable().NotFound.Ignore()
            .ForeignKey(this.GenerateFkName(x => x.Node));

            Map(x => x.Alias)
            .Access.Property()
            .Not.Nullable()
            .Length(64)
            .Index(this.GenerateIndexName(x => x.Alias));

            //Map(x => x.Description).CustomType("StringClob").Access.CamelCaseField(Prefix.Underscore);

            Map(x => x.Name).Access.CamelCaseField(Prefix.Underscore);

            Map(x => x.SchemaType)
            .Access.CamelCaseField(Prefix.Underscore)
            .Length(100)
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.SchemaType));

            Map(x => x.XmlConfiguration)
            .CustomType("StringClob")
            .Access.CamelCaseField(Prefix.Underscore);

            HasMany(x => x.AttributeDefinitions)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select().BatchSize(10)
            .AsSet()
            .Inverse()
            //.LazyLoad()
            .Key(x =>
            {
                x.Column("AttributeSchemaDefinitionId");
                x.ForeignKey(this.GenerateFkName(y => y.AttributeDefinitions));
            });

            HasMany(x => x.AttributeDefinitionGroups)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select().BatchSize(10)
            .AsSet()
            .Inverse()
            .LazyLoad()
            .Key(x =>
            {
                x.Column("AttributeSchemaDefinitionId");
                x.ForeignKey(this.GenerateFkName(y => y.AttributeDefinitionGroups));
            });

            //NOTE: added this mapping so that when you delete a schema all of the Nodes that reference the Schema as their scema. SD.
            HasMany(x => x.ReferencedNodes)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Delete()
            .Fetch.Select().LazyLoad()
            .AsSet()
            .Inverse()
            .Key(x =>
            {
                x.Column("AttributeSchemaDefinition_id");
                x.ForeignKey(this.GenerateFkName(y => y.ReferencedNodes));
            });

            //Key(x =>
            //{
            //    x.Column("NodeId");
            //    x.ForeignKey(this.GenerateFkName<AttributeSchemaDefinition, Node>());
            //});


            AdditionalMappingInfo();
        }
Esempio n. 23
0
        /// <summary>Initializes a new instance of the <see cref="AttributeDefinitionMap"/> class.</summary>
        public AttributeDefinitionMap()
        {
            Table("AttributeDefinition");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.Alias)
            .Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Length(64)
            .Index(this.GenerateIndexName(x => x.Alias));

            Map(x => x.Description).CustomType("StringClob").Access.CamelCaseField(Prefix.Underscore);

            Map(x => x.Name).Access.CamelCaseField(Prefix.Underscore)
            .Length(128);

            Map(x => x.XmlConfiguration).CustomType("StringClob").Access.CamelCaseField(Prefix.Underscore);

            Map(x => x.Ordinal).Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Default("0")
            .Index(this.GenerateIndexName(x => x.Ordinal));

            References(x => x.AttributeDefinitionGroup)
            .Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Cascade.Merge()     // Used to be All, but deleting AttributeDefinition cascades to delete this too
            .Fetch.Join()
            .LazyLoad(Laziness.False)
            .Column("AttributeDefinitionGroupId")
            .Index(this.GenerateIndexName(x => x.AttributeDefinitionGroup));

            HasMany(x => x.Attributes)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select()
            .AsSet()
            .Inverse()
            .LazyLoad()     // Reverse navigator so lazy-load
            //.KeyColumns.Add("AttributeDefinitionId");
            .Key(x =>
            {
                x.Column("AttributeDefinitionId");
                x.ForeignKey(this.GenerateFkName(y => y.Attributes));
            });

            References(x => x.AttributeSchemaDefinition)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()     // Used to be All, but deleting AttributeDefinition cascades to delete this too
            .Fetch.Select()
            .Not.Nullable()
            .Column("AttributeSchemaDefinitionId")
            .Index(this.GenerateIndexName(x => x.AttributeSchemaDefinition));

            References(x => x.AttributeType)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()     // Used to be All, but deleting AttributeDefinition cascades to delete this too
            .Fetch.Join()
            .LazyLoad(Laziness.False)
            .Not.Nullable()
            .Column("AttributeTypeId")
            .Index(this.GenerateIndexName(x => x.AttributeType));

            AdditionalMappingInfo();
        }
Esempio n. 24
0
        /// <summary>Initializes a new instance of the <see cref="LocaleMap"/> class.</summary>
        public LocaleMap()
        {
            Table("Locale");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.Alias)
            .Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Length(64)
            .Index(this.GenerateIndexName(x => x.Alias));

            Map(x => x.LanguageIso).Column("LanguageISO").Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.LanguageIso));

            Map(x => x.Name).Access.CamelCaseField(Prefix.Underscore);

            //HasMany(x => x.AttributeDateValues)
            //    .Access.CamelCaseField(Prefix.Underscore)
            //    .Cascade.MergeSaveAllDeleteOrphan()
            //    .Fetch.Select()
            //    .AsSet()
            //    .Inverse()
            //    .LazyLoad()
            //    //.KeyColumns.Add("LocaleId");
            //    .Key(x =>
            //    {
            //        x.Column("LocaleId");
            //        x.ForeignKey(this.GenerateFkName(y => y.AttributeDateValues));
            //    });

            //HasMany(x => x.AttributeIntegerValues)
            //    .Access.CamelCaseField(Prefix.Underscore)
            //    .Cascade.MergeSaveAllDeleteOrphan()
            //    .Fetch.Select()
            //    .AsSet()
            //    .Inverse()
            //    .LazyLoad()
            //    //.KeyColumns.Add("LocaleId");
            //    .Key(x =>
            //    {
            //        x.Column("LocaleId");
            //        x.ForeignKey(this.GenerateFkName(y => y.AttributeIntegerValues));
            //    });

            //HasMany(x => x.AttributeLongStringValues)
            //    .Access.CamelCaseField(Prefix.Underscore)
            //    .Cascade.MergeSaveAllDeleteOrphan()
            //    .Fetch.Select()
            //    .AsSet()
            //    .Inverse()
            //    .LazyLoad()
            //    //.KeyColumns.Add("LocaleId");
            //    .Key(x =>
            //    {
            //        x.Column("LocaleId");
            //        x.ForeignKey(this.GenerateFkName(y => y.AttributeLongStringValues));
            //    });

            //HasMany(x => x.AttributeStringValues)
            //    .Access.CamelCaseField(Prefix.Underscore)
            //    .Cascade.MergeSaveAllDeleteOrphan()
            //    .Fetch.Select()
            //    .AsSet()
            //    .Inverse()
            //    .LazyLoad()
            //    //.KeyColumns.Add("LocaleId");
            //    .Key(x =>
            //    {
            //        x.Column("LocaleId");
            //        x.ForeignKey(this.GenerateFkName(y => y.AttributeStringValues));
            //    });

            AdditionalMappingInfo();
        }
Esempio n. 25
0
        /// <summary>Initializes a new instance of the <see cref="AttributeDefinitionGroupMap"/> class.</summary>
        public AttributeDefinitionGroupMap()
        {
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("NodeId")
            .GeneratedBy.Foreign("Node")
            .Not.Nullable();

            References(x => x.Node)
            .Access.Property()
            .Cascade.All()
            .Column("NodeId")
            .ReadOnly()
            .Fetch.Join()
            .Not.Nullable().NotFound.Ignore()
            .ForeignKey(this.GenerateFkName(x => x.Node));

            Map(x => x.Alias)
            .Access.Property()
            .Not.Nullable()
            .Length(64)
            .Index(this.GenerateIndexName(x => x.Alias));

            //Map(x => x.Description).CustomType("StringClob").Access.CamelCaseField(Prefix.Underscore);

            Map(x => x.Name).Access.CamelCaseField(Prefix.Underscore);

            Map(x => x.Ordinal).Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Default("0")
            .Index(this.GenerateIndexName(x => x.Ordinal));

            HasMany(x => x.AttributeDefinitions)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()     // APN 2011/12/15 Important: Changes AttributeDefinitionGroupMap to have Merge (rather than Merge + Delete Orphan) cascade style. NH has decided to start cascading deletions of AttributeDefinitions (which cascades further to stored Attributes) when a group is removed from a schema, even if those AttributeDefinitions are still referenced by the schema to another group (e.g. in the case of moving a def to another group, and deleting the previous group, in one operation). So to counter this (after much debugging and attempts at alternatives) I've disabled the cascading of deletions from a group to its attribute definitions, meaning in practise attribute definitions have to be manually deleted first / at the same time as a group if desired. It's never actually desired in the backoffice so it's fine for now.
            .Fetch.Select()
            .AsSet()
            .Inverse()
            .LazyLoad()     // Reverse navigator so lazy-load
            //.KeyColumns.Add("AttributeDefinitionGroupId");
            .Key(x =>
            {
                x.Column("AttributeDefinitionGroupId");
                x.ForeignKey(this.GenerateFkName(y => y.AttributeDefinitions));
            });

            References(x => x.AttributeSchemaDefinition)
            .Not.Nullable()
            .Cascade.Merge()
            .LazyLoad()
            .Index(this.GenerateIndexName(x => x.AttributeSchemaDefinition))
            .Fetch.Select()
            .Column("AttributeSchemaDefinitionId");

            //Key(x =>
            //    {
            //        x.Column("NodeId");
            //        x.ForeignKey(this.GenerateFkName<AttributeDefinitionGroup, Node>());
            //    });

            AdditionalMappingInfo();
        }
Esempio n. 26
0
        /// <summary>Initializes a new instance of the <see cref="NodeRelationMap"/> class.</summary>
        public NodeRelationMap()
        {
            Table("NodeRelation");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.DateCreated).Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.DateCreated));

            Map(x => x.Ordinal).Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Default("0")
            .Index(this.GenerateIndexName(x => x.Ordinal));

            References(x => x.EndNode)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Fetch.Join()
            .Not.Nullable()
            //.LazyLoad(Laziness.NoProxy)
            .Column("EndNodeId")
            .Index(this.GenerateIndexName(x => x.EndNode));

            HasMany(x => x.NodeRelationCaches)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select()
            .AsSet()
            .Inverse()
            .LazyLoad()
            //.KeyColumns.Add("NodeRelationId");
            .Key(x =>
            {
                x.Column("NodeRelationId");
                x.ForeignKey(this.GenerateFkName(y => y.NodeRelationCaches));
            });

            HasMany(x => x.NodeRelationTags)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Join()
            .AsSet()
            .Inverse()
            .BatchSize(20)
            //.LazyLoad()
            //.KeyColumns.Add("NodeRelationId")
            .Key(x =>
            {
                x.Column("NodeRelationId");
                x.ForeignKey(this.GenerateFkName(y => y.NodeRelationTags));
            })
            .Cache.IncludeAll().ReadWrite();

            References(x => x.NodeRelationType)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Not.Nullable()
            .Fetch.Join()
            .Column("NodeRelationTypeId")
            .Index(this.GenerateIndexName(x => x.NodeRelationType));

            References(x => x.StartNode)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Not.Nullable()
            .Fetch.Join()
            //.LazyLoad(Laziness.NoProxy)
            .Column("StartNodeId")
            .Index(this.GenerateIndexName(x => x.StartNode));

            //Map(x => x.StartNodeId).Access.CamelCaseField(Prefix.Underscore);
            //Map(x => x.EndNodeId).Access.CamelCaseField(Prefix.Underscore);

            AdditionalMappingInfo();
        }
Esempio n. 27
0
        /// <summary>Initializes a new instance of the <see cref="NodeMap"/> class.</summary>
        public NodeMap()
        {
            Table("Node");
            OptimisticLock.None();
            Polymorphism.Explicit();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.DateCreated).Access.CamelCaseField(Prefix.Underscore).Not.Nullable();

            Map(x => x.IsDisabled).Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.IsDisabled));

            HasMany(x => x.IncomingRelationCaches)
            .Access.CamelCaseField(Prefix.Underscore)
            //.Cascade.AllDeleteOrphan().ForeignKeyCascadeOnDelete()
            .Cascade.MergeSaveAllDeleteOrphan()    //.ForeignKeyCascadeOnDelete()
            //.Cascade.All()
            //.Cascade.Merge()
            .Fetch.Select()
            .AsSet()
            .Inverse()
            .BatchSize(20)
            .LazyLoad()
            .Key(x =>
            {
                x.Column("EndNodeId");
                x.ForeignKey(this.GenerateFkName(y => y.IncomingRelationCaches));
            })
            .Cache.IncludeAll().ReadWrite();

            HasMany(x => x.IncomingRelations)
            .Access.CamelCaseField(Prefix.Underscore)
            //.Cascade.AllDeleteOrphan().ForeignKeyCascadeOnDelete()
            .Cascade.MergeSaveAllDeleteOrphan()     //.ForeignKeyCascadeOnDelete()
            //.Cascade.All()
            //.Cascade.Merge()
            .Fetch.Select()
            .AsSet()
            .Inverse()
            .BatchSize(20)
            .LazyLoad()
            .Key(x =>
            {
                x.Column("EndNodeId");
                x.ForeignKey(this.GenerateFkName(y => y.IncomingRelations));
            })
            ;    //.Cache.IncludeAll().ReadWrite(); This was disabled 27/Sep by APN to resolve an issue where new published items are not routable

            HasMany(x => x.OutgoingRelationCaches)
            .Access.CamelCaseField(Prefix.Underscore)
            //.Cascade.AllDeleteOrphan().ForeignKeyCascadeOnDelete()
            .Cascade.MergeSaveAllDeleteOrphan()    //.ForeignKeyCascadeOnDelete()
            //.Cascade.All()
            //.Cascade.Merge()
            .Fetch.Select()
            .AsSet()
            .Inverse()
            .BatchSize(20)
            .LazyLoad()
            .Key(x =>
            {
                x.Column("StartNodeId");
                x.ForeignKey(this.GenerateFkName(y => y.OutgoingRelationCaches));
            })
            .Cache.IncludeAll().ReadWrite();

            HasMany(x => x.OutgoingRelations)
            .Access.CamelCaseField(Prefix.Underscore)
            //.Cascade.AllDeleteOrphan().ForeignKeyCascadeOnDelete()
            .Cascade.MergeSaveAllDeleteOrphan()     //.ForeignKeyCascadeOnDelete()
            //.Cascade.All()
            //.Cascade.Merge()
            .Fetch.Select()
            .AsSet()
            .Inverse()
            .BatchSize(20)
            .LazyLoad()
            .Key(x =>
            {
                x.Column("StartNodeId");
                x.ForeignKey(this.GenerateFkName(y => y.OutgoingRelations));
            })
            ;    //.Cache.IncludeAll().ReadWrite(); This was disabled 27/Sep by APN to resolve an issue where new published items are not routable

            HasMany(x => x.NodeVersions)
            .Access.Property()
            .Cascade.MergeSaveAllDeleteOrphan()    //.ForeignKeyCascadeOnDelete()
            .Fetch.Select()
            .AsSet()
            .Inverse()
            .BatchSize(20)
            .LazyLoad()
            .Key(x =>
            {
                x.Column("NodeId");
                x.ForeignKey(this.GenerateFkName(y => y.NodeVersions));
            })
            .Cache.IncludeAll().ReadWrite();

            AdditionalMappingInfo();
        }
Esempio n. 28
0
        /// <summary>Initializes a new instance of the <see cref="AttributeMap"/> class.</summary>
        public AttributeMap()
        {
            Table("Attribute");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            References(x => x.AttributeDefinition)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Fetch.Select()
            .Not.Nullable()
            .Column("AttributeDefinitionId")
            .Index(this.GenerateIndexName(x => x.AttributeDefinition));

            References(x => x.NodeVersion)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Fetch.Select()
            .Not.Nullable()
            .LazyLoad()
            .Column("NodeVersionId")
            .Index(this.GenerateIndexName(x => x.NodeVersion));

            HasMany(x => x.AttributeDecimalValues)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select().LazyLoad()
            .AsSet()
            .Inverse()
            .Key(x =>
            {
                x.Column("AttributeId");
                x.ForeignKey(this.GenerateFkName(y => y.AttributeDecimalValues));
            });

            HasMany(x => x.AttributeDateValues)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select().LazyLoad()
            .AsSet()
            .Inverse()
            .Key(x =>
            {
                x.Column("AttributeId");
                x.ForeignKey(this.GenerateFkName(y => y.AttributeDateValues));
            });

            HasMany(x => x.AttributeIntegerValues)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select().LazyLoad()
            .AsSet()
            .Inverse()
            .Key(x =>
            {
                x.Column("AttributeId");
                x.ForeignKey(this.GenerateFkName(y => y.AttributeIntegerValues));
            });

            HasMany(x => x.AttributeLongStringValues)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select().LazyLoad()                     // Lazy-load long strings
            .AsSet()
            .Inverse()
            .Key(x =>
            {
                x.Column("AttributeId");
                x.ForeignKey(this.GenerateFkName(y => y.AttributeLongStringValues));
            });

            HasMany(x => x.AttributeStringValues)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select().LazyLoad()
            .AsSet()
            .Inverse()
            .Key(x =>
            {
                x.Column("AttributeId");
                x.ForeignKey(this.GenerateFkName(y => y.AttributeStringValues));
            });

            AdditionalMappingInfo();
        }
Esempio n. 29
0
        /// <summary>Initializes a new instance of the <see cref="NodeVersionMap"/> class.</summary>
        public NodeVersionMap()
        {
            Table("NodeVersion");
            OptimisticLock.None();

            Id(x => x.Id)
            .Access.CamelCaseField(Prefix.Underscore)
            .Column("Id")
            .GeneratedBy.Custom <GuidCombUriGenerator>();

            Map(x => x.DateCreated).Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Index(this.GenerateIndexName(x => x.DateCreated));

            Map(x => x.DefaultName).Access.CamelCaseField(Prefix.Underscore);

            References(x => x.AttributeSchemaDefinition)
            .Access.CamelCaseField(Prefix.Underscore)
            .Not.Nullable()
            .Cascade.Merge()
            .Index(this.GenerateIndexName(x => x.AttributeSchemaDefinition));

            HasMany(x => x.Attributes)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Join()     // We rarely need a NodeVersion without its Attributes
            .AsSet()
            .Inverse()
            //.LazyLoad() // Not relevant when using a join fetch
            //.LazyLoad().Fetch.Select()
            //.KeyColumns.Add("NodeVersionId");
            .Key(x =>
            {
                x.Column("NodeVersionId");
                x.ForeignKey(this.GenerateFkName(y => y.Attributes));
            });

            References(x => x.Node)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.Merge()
            .Not.Nullable()
            .Fetch.Select()
            .Column("NodeId")
            .Index(this.GenerateIndexName(x => x.Node));

            HasMany(x => x.NodeVersionSchedules)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select()
            .BatchSize(5)
            .AsSet()
            .Inverse()
            .LazyLoad()
            .Key(x =>
            {
                x.Column("NodeVersionId");
                x.ForeignKey(this.GenerateFkName(y => y.NodeVersionSchedules));
            });

            HasMany(x => x.NodeVersionStatuses)
            .Access.CamelCaseField(Prefix.Underscore)
            .Cascade.MergeSaveAllDeleteOrphan()
            .Fetch.Select()
            .BatchSize(20)
            .AsSet()
            .Inverse()
            //.LazyLoad()
            .Key(x =>
            {
                x.Column("NodeVersionId");
                x.ForeignKey(this.GenerateFkName(y => y.NodeVersionStatuses));
            });

            AdditionalMappingInfo();
        }