Breeze:使用Envers时使用NHMetadataBuilder构建元数据
我们使用NHibernate.Envers扩展进行审计。因此,审计实体是动态生成的,尽管它们不是我们业务模型的一部分 但是NHMetadataBuilder调用GetMappedClass方法,并且不区分这些审计实体和我们的业务实体。但是,对于这些审计实体,它稍后会崩溃。GetMappedClass返回的类型是System.Collections.IDictionary,添加到元数据中显然没有任何意义 目前,我们只是通过在BuildMetadata方法中添加保护措施来忽略这些实体:Breeze:使用Envers时使用NHMetadataBuilder构建元数据,breeze,Breeze,我们使用NHibernate.Envers扩展进行审计。因此,审计实体是动态生成的,尽管它们不是我们业务模型的一部分 但是NHMetadataBuilder调用GetMappedClass方法,并且不区分这些审计实体和我们的业务实体。但是,对于这些审计实体,它稍后会崩溃。GetMappedClass返回的类型是System.Collections.IDictionary,添加到元数据中显然没有任何意义 目前,我们只是通过在BuildMetadata方法中添加保护措施来忽略这些实体:
foreach (var meta in classMeta.Values)
{
if (!meta.EntityName.EndsWith("_AUD"))
{
AddClass(meta);
}
}
你能想出一个更通用的方法吗 来自的pull请求修复了问题,并已合并到代码库中。它现在可以从,并将在下一个微风发布
谢谢lnu。谢谢。不过,我不知道这是否应该再进一步。我们遇到了更多不应该向客户机公开的实体,也不应该通过metadatabuilder方法对它们进行“扫描”。有没有办法向metadatabuilder提供一个类型列表,在构建元数据时会忽略这些类型?这是个好主意。我已经想过了,但是我没有做,因为没有人要求。我会尽快完成的。