0

嗨,我在处理流利的 nhibernate 时遇到了一个问题。

我的用户实体在下面

公共类 UserEntity
{
公共虚拟 int Userid { 获取;放; }
公共虚拟 CompanyEntity CompanyId { 获取;放; }
公共虚拟字符串名称 { 获取;放; }
公共虚拟字符串电子邮件 { 获取;放; }
公共虚拟字符串用户名 { 获取;放; }
公共虚拟字符串密码 { 获取;set;}
公共虚拟小数 MinLimit { get; 设置;}
公共虚拟小数MaxLimit {获取; 设置;}
公共虚拟日期时间出生日期{得到;设置;}
公共虚拟 RoleEntity Roleid { 获取;放; }
公共虚拟 int CreatedBy { get; 放;}
公共虚拟日期时间 CreatedDate { 获取;设置;}
公共虚拟布尔活动{获取;设置;}
}
}

映射类如下

公共类 UserMap : ClassMap
{
public UserMap()
{
Id(x => x.Userid);
References(x => x.CompanyId).Column("CompanyId").Cascade.All();
地图(x => x.Name);
地图(x => x.Email);
地图(x => x.用户名);
地图(x => x.密码);
地图(x => x.MinLimit);
地图(x => x.MaxLimit);
地图(x => x.生日);
References(x => x.Roleid).Column("Roleid").Cascade.All();
地图(x => x.CreatedBy);

地图(x => x.Active);
表(“tblUsers”);
}
}

现在,当我试图执行我的程序时,它会给我类似的错误。

无法确定类型:ProductPO.Models.Entites.UserEntity、ProductPO、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null,对于列:NHibernate.Mapping.Column(CreatedBy)

我的助手类如下

私有静态 ISessionFactory _sessionFactory;

    private static ISessionFactory sessionFactory  
    {  
        get  
        {  
            if (_sessionFactory == null)  
            {  
                initialisationFactory();  
            }  

            return _sessionFactory;  
        }  

    }  
    private static void initialisationFactory()  
    {  
        try  
        {  

            _sessionFactory = Fluently.Configure()  
                            .Database(MsSqlConfiguration.MsSql2005.ConnectionString(@"Server=10.10.10.10;Database=Product;uid=sa;pwd=12345;Trusted_Connection=false;").ShowSql())    
                            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<CompanyEntity>().ExportTo("d:\\"))  
                            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<ModuleEntity>().ExportTo("d:\\"))    
                            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<RoleEntity>().ExportTo("d:\\"))  
                            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<UserEntity>().ExportTo("d:\\"))  
                            .ExposeConfiguration(cfg => new SchemaExport(cfg))  
                            .BuildSessionFactory();  
        }  
        catch (Exception e)  
        {  

            throw;  
        } 
    }  
    public static ISession OpenSession()  
    {  
        return sessionFactory.OpenSession();  
    }  

提前致谢

4

2 回答 2

0

最可能的原因是设置您的 UserEntity 的程序集定义您的 UserMap 的程序集不同。

配置您的映射:

Fluently.Configure() 
    .Database(MsSqlConfiguration.MsSql2005.ConnectionString("{OMITED}").ShowSql()) 
    .Mappings(m => {
        AddFromAssemblyOf<UserMap>()
    })  
    .ExposeConfiguration( c => 
        new SchemaExport(c)
        .Execute(false, true, false) 
    )

无需添加一对一映射。这样,Fluent NHibernate 搜索从 ClassMap 继承的整个程序集类

于 2013-05-22T16:14:54.330 回答
0

不确定这是否会解决问题,但您的映射类应该将模型类型传递给基类,如下所示:

public class UserMap : ClassMap<UserEntity>

基础表中是否还存在 CreatedBy 列?

如果有内部异常,您能否发布内部异常......

于 2013-05-22T13:15:56.147 回答