我正在使用 S#arp Architecture 1.6 并按照
我正在使用来自 Rhino.Commons 的最新版本
我的 Application_EndRequest 方法包含
ISession session = NHibernateSession.Current;
我的 ComponentRegister.cs 包含
container.Kernel.Register(
Component.For<IAuthorizationService>()
.ImplementedBy<AuthorizationService>()
.LifeStyle.Is(LifestyleType.Transient),
Component.For<IAuthorizationRepository>()
.ImplementedBy<AuthorizationRepository>()
.LifeStyle.Is(LifestyleType.Transient),
Component.For<IPermissionsBuilderService>()
.ImplementedBy<PermissionsBuilderService>()
.LifeStyle.Is(LifestyleType.Transient),
Component.For<IPermissionsService>()
.ImplementedBy<PermissionsService>()
.LifeStyle.Is(LifestyleType.Transient),
Component.For<IUnitOfWorkFactory>()
.ImplementedBy<NHibernateUnitOfWorkFactory>()
.LifeStyle.Is(LifestyleType.Singleton),
Component.For<Rhino.Commons.IRepository<User>>()
.ImplementedBy<NHRepository<User>>()
.LifeStyle.Is(LifestyleType.Transient)
);
container.AddFacility<FactorySupportFacility>()
.Register(Component.For<ISession>()
.UsingFactoryMethod(() => NHibernateSession.Current)
.LifeStyle.Is(LifestyleType.Transient));
我还按照说明添加了 RhinoSecurityPersistenceConfigurer()。
我打电话时收到的错误
UnitOfWork.Start()
是
An association from the table Permissions refers to an unmapped class: Rhino.Security.IUser
有谁知道这个错误的原因可能是什么?
有没有人成功地将 Rhino.Security 与 S#arp 架构集成?
任何帮助都会很棒。
谢谢
富有的
--附加细节--
感谢到目前为止的所有回复。
我仍然无法解决这个问题,所以我想我会添加更多细节。
在我的 Global.asax.cs 我有
private void InitializeNHibernateSession()
{
NHibernateSession.Init(
webSessionStorage,
new string[] { Server.MapPath("~/bin/SwitchSnapshot.Data.dll") },
new AutoPersistenceModelGenerator().Generate(),
Server.MapPath("~/NHibernate.config"),
null, null, new RhinoSecurityPersistenceConfigurer());
}
RhinoSecurityPersistenceConfigurer :
public Configuration ConfigureProperties(Configuration nhibernateConfig)
{
Security.Configure<User>(nhibernateConfig, SecurityTableStructure.Prefix);
return nhibernateConfig;
}
我有一个 AuthorizationAttribute 调用
using (UnitOfWork.Start())
NHibernateUnitOfWorkFactory.cs 中发生的错误为
sessionFactory = cfg.BuildSessionFactory();