Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Breeze:使用Envers时使用NHMetadataBuilder构建元数据_Breeze - Fatal编程技术网

Breeze:使用Envers时使用NHMetadataBuilder构建元数据

Breeze:使用Envers时使用NHMetadataBuilder构建元数据,breeze,Breeze,我们使用NHibernate.Envers扩展进行审计。因此,审计实体是动态生成的,尽管它们不是我们业务模型的一部分 但是NHMetadataBuilder调用GetMappedClass方法,并且不区分这些审计实体和我们的业务实体。但是,对于这些审计实体,它稍后会崩溃。GetMappedClass返回的类型是System.Collections.IDictionary,添加到元数据中显然没有任何意义 目前,我们只是通过在BuildMetadata方法中添加保护措施来忽略这些实体:

我们使用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提供一个类型列表,在构建元数据时会忽略这些类型?这是个好主意。我已经想过了,但是我没有做,因为没有人要求。我会尽快完成的。