0

As you see the models have references as one to many. list of project is not mapped here. there are more than one project and the project has more than one role and the role has more than one permission. error is persister system not avialable.

can anyone look up and help me ?

public class Permission
{
    public virtual int MId { get; set; }
    public virtual string Id { get; set; }
    public virtual bool View { get; set; }
    public virtual bool Add { get; set; }
    public virtual bool Edit { get; set; }
    public virtual bool Delete { get; set; }
    public virtual Role Roles { get; set; }
}

public class Role
{
    public virtual int RId { get; set; }
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual string Site_Id { get; set; }
    public virtual string Site_Name { get; set; }
    public virtual string Domain { get; set; }
    public virtual List<Permission> permissions { get; set; }
    public virtual Project Project { get; set; }
}

public class Project
{
    public virtual int PId { get; set; }
    public virtual string Id { get; set; }
    public virtual string Name { get; set; }
    public virtual List<Role> Roles { get; set; }
}

Mappings

public class PermissionMapping : ClassMap<Permission>
{
    public PermissionMapping()
    {
        Table("ModulePermissions");
        Id(u => u.MId).GeneratedBy.Identity();
        Map(u => u.Id).Column("ModuleName");
        Map(u => u.View);
        Map(u => u.Edit);
        Map(u => u.Add);
        Map(u => u.Delete);
        References(x => x.Roles).Column("RolePermissionId");
    }
}    
public class RoleMapping : ClassMap<Role>
{
    public RoleMapping()
    {
        Table("ModuleRole");
        Id(u => u.RId).GeneratedBy.Identity();
        Map(u => u.Name);
        Map(u => u.Site_Id).Column("SiteId");
        Map(u => u.Site_Name).Column("SiteName");
        Map(u => u.Domain);
        References(x => x.Project).Column("RoleProjectId");
        HasMany(u => u.permissions).KeyColumn("RolePermissionId").Inverse().Cascade.All().Not.LazyLoad();
    }
}
public class ProjectsMapping : ClassMap<Project>
{
    public ProjectsMapping()
    {
        Table("Projects");
        Id(u => u.PId).GeneratedBy.Identity();
        Map(u => u.Id).Column("ApiProjectId");
        Map(u => u.Name);
        HasMany(u => u.Roles).KeyColumn("RoleProjectId").Inverse().Cascade.All().Not.LazyLoad();
    }
}
Firo
  • 30,626
  • 4
  • 55
  • 94
  • public class RoleMapping : ClassMap { public RoleMapping() { Table("ModuleRole"); Id(u => u.RId).GeneratedBy.Identity(); Map(u => u.Name); Map(u => u.Site_Id).Column("SiteId"); Map(u => u.Site_Name).Column("SiteName"); Map(u => u.Domain); References(x => x.Project).Column("RoleProjectId"); HasMany(u => u.permissions).KeyColumn("RolePermissionId").Inverse().Cascade.All().Not.LazyLoad(); } } – Hafizullah Ozgur Jan 04 '22 at 11:15
  • public class ProjectsMapping : ClassMap { public ProjectsMapping() { Table("Projects"); Id(u => u.PId).GeneratedBy.Identity(); Map(u => u.Id).Column("ApiProjectId"); Map(u => u.Name); HasMany(u => u.Roles).KeyColumn("RoleProjectId").Inverse().Cascade.All().Not.LazyLoad(); } } – Hafizullah Ozgur Jan 04 '22 at 11:15
  • * Other two mapping class is above as comment – Hafizullah Ozgur Jan 04 '22 at 11:15
  • There is nothing about 'system' in the code posted. the code looks good so far, i think the problem is somewhere else – Firo Jul 12 '22 at 12:55

0 Answers0