在中等信任下使用Fluent NHibernate映射继承时的SecurityException
我在使用Medium trust运行的应用程序中映射继承时遇到问题。当我从web.config中删除Medium信任限制时,它就像一个魅力。如果我注释掉我的子类映射,一切都顺利。
当我的应用程序在中等信任中启动时,在Fluent的配置构建期间,我捕获异常,我可以从中读取System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(...)方法无权运行。
我能找到的每一点信息都建议预先生成惰性代理,关闭延迟加载并禁用反射优化器。我做了所有的准备工作,如果我不映射子类,我的代码就可以了。
这是我的映射:
public PageMap()
{
Id(x => x.PageID);
Map(x => x.DateCreated);
Map(x => x.DateLastAccessed);
Map(x => x.Hits);
Map(x => x.PrivateSuffix);
Map(x => x.PublicSuffix);
HasMany(x => x.Components).Not.LazyLoad();
Not.LazyLoad();
}
}
public class ComponentMap: ClassMap<Component>
{
public ComponentMap()
{
Id(x => x.ComponentID);
Map(x => x.Position);
References(x => x.Page);
DiscriminateSubClassesOnColumn("ComponentType");
Not.LazyLoad();
}
}
public class HeadingComponentMap : SubclassMap<HeadingComponent>
{
public HeadingComponentMap()
{
Map(x => x.Text);
Not.LazyLoad();
}
}
以及web.config中的相关部分
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<bytecode-provider type="null"/>
<reflection-optimizer use="false" />
<session-factory name="">
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">data source=.SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|entities.mdf;User Instance=true</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
<property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
<property name='current_session_context_class'>web</property>
</session-factory>
我必须手动完成所有事情吗?我非常想在这里使用继承。
没有找到相关结果
已邀请:
3 个回复
浅镁
并且在将映射作为资源嵌入后使用
破弯
(来自http://wiki.fluentnhibernate.org/Fluent_configuration) 这将导出标准的.hbm.xml映射文件,可用于查看应用程序是否只使用nhibernate正常运行
擅香