嗨我在处理流利的nhibernate时遇到了一个问题 .
我的用户实体在下面
public class UserEntity {public virtual int Userid {get;组;公共虚拟CompanyEntity CompanyId {get;组; public virtual string Name {get;组; } public virtual string Email {get;组;公共虚拟字符串用户名{get;组;公共虚拟字符串密码{get; set;} public virtual decimal MinLimit {get; set;} public virtual decimal MaxLimit {get; set;} public virtual DateTime Birthdate {get; set;} public virtual RoleEntity Roleid {get;组; public virtual int CreatedBy {get; set;} public virtual DateTime CreatedDate {get; set;} public virtual bool Active {get;设置;}}}
和映射类如下
public class UserMap:ClassMap {public UserMap(){Id(x => x.Userid);引用(x => x.CompanyId).Column(“CompanyId”) . Cascade.All(); Map(x => x.Name); Map (x => x.Email); Map(x => x.Username); Map (x => x.Password); Map(x => x.MinLimit); Map(x => x.MaxLimit); Map (x => x.Birthdate);引用(x => x.Roleid).Column(“Roleid”) . Cascade.All(); Map(x => x.CreatedBy); Map(x => x.CreatedDate); Map (x => x.Active);表( “向tblUsers”); }}
现在,当我试图执行我的程序时,它给了我错误 .
无法确定以下类型:ProductPO.Models.Entites.UserEntity,ProductPO,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null,对于列:NHibernate.Mapping.Column(CreatedBy)
我的帮助班如下
private static 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();
}
提前致谢
2 回答
不确定这是否能解决问题,但您的映射类应该将模型类型传递给基类,如下所示:
CreatedBy列也存在于基础表中吗?
你有没有发布内部异常....
最可能的原因是设置了UserEntity is not the same 的程序集,因为它定义了您的UserMap .
配置映射:
无需添加一对一映射 . 这样,Fluent NHibernate搜索从ClassMap继承的整个assemblie类