Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Fluent NHibernate在加载时返回一项_C#_Nhibernate_Fluent Nhibernate - Fatal编程技术网

C# Fluent NHibernate在加载时返回一项

C# Fluent NHibernate在加载时返回一项,c#,nhibernate,fluent-nhibernate,C#,Nhibernate,Fluent Nhibernate,我对流利的NHibernate有点问题。 我的课程是: public class Usuario { public virtual long IdUsuario { get; set; } public virtual string AdSamAccountName { get; set; } public virtual string Email { get; set; } public virtual Trabajado

我对流利的NHibernate有点问题。 我的课程是:

public class Usuario
    {
        public virtual long IdUsuario { get; set; }
        public virtual string AdSamAccountName { get; set; }
        public virtual string Email { get; set; }
        public virtual TrabajadorWenco TrabajadorWenco { get; set; }
        public virtual IList<AsignacionProyecto> ProyectosAsignados { get; set; }
        public virtual IList<UsuarioArea> AreasUsuario { get; set; }
    }

public class Area
    {
        public virtual long IdArea { get; set; }
        public virtual string Nombre { get; set; }
        public virtual string Descripcion { get; set; }
        public virtual IList<UsuarioArea> UsuariosArea { get; set; }
        public virtual IList<Proyecto> ProyectosArea { get; set; }
    }
public class UsuarioArea
    {
        public virtual long IdUsuarioArea { get; set; }
        public virtual Usuario Usuario { get; set; }
        public virtual Area Area { get; set; }
        public virtual Rol Rol { get; set; }
    }
公共类Usuario
{
公共虚拟长IdUsuario{get;set;}
公共虚拟字符串AdSamAccountName{get;set;}
公共虚拟字符串电子邮件{get;set;}
公共虚拟TrabajadorWenco TrabajadorWenco{get;set;}
公共虚拟IList ProyectosAsignados{get;set;}
公共虚拟IList区域SUSUARIO{get;set;}
}
公共课区
{
公共虚拟长IDrea{get;set;}
公共虚拟字符串Nombre{get;set;}
公共虚拟字符串描述符{get;set;}
公共虚拟IList UsuariosArea{get;set;}
公共虚拟IList ProyectosArea{get;set;}
}
公营用地
{
公共虚拟长IDU区域{get;set;}
公共虚拟Usuario Usuario{get;set;}
公共虚拟区域{get;set;}
公共虚拟Rol{get;set;}
}
我的地图是:

class UsuarioMap : ClassMap<Usuario>
    {
        public UsuarioMap()
        {
            Schema("dbo");
            Table("usuario");

            Id(x => x.IdUsuario).Column("id_usuario")
                .GeneratedBy.HiLo("dbo.nh_hilo", "next_hi", "1000", @"table_name = 'usuario'");

            References(x => x.TrabajadorWenco).Column("id_trabajador_wenco").Not.LazyLoad();
            HasMany(x => x.ProyectosAsignados).KeyColumn("id_asignacion_proyecto");
            HasMany(x => x.AreasUsuario).KeyColumn("id_usuario_area").Not.LazyLoad();

            Map(x => x.AdSamAccountName).Column("ad_sam_account_name");
            Map(x => x.Email).Column("email");
        }
    }
public class UsuarioAreaMap : ClassMap<UsuarioArea>
    {
        public UsuarioAreaMap()
        {
            Schema("sgh");
            Table("usuario_area");

            Id(x => x.IdUsuarioArea).Column("id_usuario_area")
                .GeneratedBy.HiLo("dbo.nh_hilo", "next_hi", "1000", @"table_name = 'usuario_area'");

            References(x => x.Usuario).Column("id_usuario");
            References(x => x.Area).Column("id_area").Not.LazyLoad();

            Map(x => x.Rol).CustomType(typeof(Rol)).Column("id_rol");
        }
    }
public class AreaMap : ClassMap<Area>
    {
        public AreaMap()
        {
            Schema("sgh");
            Table("area");

            Id(x => x.IdArea).Column("id_area")
                .GeneratedBy.HiLo("dbo.nh_hilo", "next_hi", "1000", @"table_name = 'area'");

            HasMany(x => x.UsuariosArea).KeyColumn("id_area");
            HasMany(x => x.ProyectosArea).KeyColumn("id_area");

            Map(x => x.Nombre).Column("nombre");
            Map(x => x.Descripcion).Column("descripcion");
        }
    }
类映射:类映射
{
公共地图()
{
模式(“dbo”);
表(“usuario”);
Id(x=>x.IdUsuario).列(“Id\u usuario”)
.GeneratedBy.HiLo(“dbo.nh_HiLo”,“next_hi”,“1000”,“table_name='usuario'”);
引用(x=>x.TrabajadorWenco).Column(“id_trabajador_wenco”).Not.LazyLoad();
HasMany(x=>x.ProyectosAsignados).KeyColumn(“id_asignacion_proyecto”);
HasMany(x=>x.areasuario).KeyColumn(“id\u usuario\u area”).Not.LazyLoad();
Map(x=>x.AdSamAccountName).Column(“ad\u sam\u account\u name”);
Map(x=>x.Email)列(“Email”);
}
}
公共类区域映射:类映射
{
公共区域地图()
{
模式(“sgh”);
表(“usuario_区域”);
Id(x=>x.idusuario区域)。列(“Id\u usuario\u区域”)
.GeneratedBy.HiLo(“dbo.nhu HiLo”,“next_hi”,“1000”,“table_name='usuario_area'”);
参考文献(x=>x.Usuario)。列(“id_Usuario”);
引用(x=>x.Area).Column(“id_Area”).Not.LazyLoad();
Map(x=>x.Rol).CustomType(typeof(Rol)).Column(“id_Rol”);
}
}
公共类区域映射:类映射
{
公共区域地图()
{
模式(“sgh”);
表(“面积”);
Id(x=>x.IdArea).列(“Id\U区域”)
.GeneratedBy.HiLo(“dbo.nhu HiLo”,“next_hi”,“1000”,“table_name='area'”);
HasMany(x=>x.UsuariosArea).KeyColumn(“id_区域”);
HasMany(x=>x.ProyectosArea).KeyColumn(“id_区域”);
Map(x=>x.Nombre).Column(“Nombre”);
映射(x=>x.descripion).Column(“descripion”);
}
}
我知道在表Usuario区域中有两条Id=1的Usuario记录,但当我尝试查找一个Id时,它会返回一条Usuario,但UsuariosArea列表中只有一项


关于为什么它只返回列表中的一项,有什么线索吗?

您需要在hasmany映射中引用外键

尝试将其更改为:

HasMany(x => x.AreasUsuario).KeyColumn("id_usuario").Not.LazyLoad();

假设我的外键是“id_usuario”,是的。它对我有用:)。Thxs