我如何从微风的元数据收集排除表/实体

breeze.js : how do I exclude tables/entities from breeze metadata collection?

本文关键字:排除 实体 元数据 微风      更新时间:2023-09-26

我有一个单页应用程序,后端使用实体框架,客户端使用Breeze.js。我也使用微风。net EF类。为了让breeze客户端在客户端上创建breeze实体,它调用了一个名为"MetaData"的控制器方法。此方法返回数据库中所有实体的集合,甚至包括客户端可能不使用的实体。

尽管元数据中没有编码逻辑,但它确实包含了数据库的完整模式。其中一些实体用于安全性和业务逻辑,我不希望将整个结构对外开放。

是否有一种方法可以从breezejs元数据集合中排除实体(而不仅仅是单个属性)?

谢谢

最简单的方法是创建一个DbContext,它只包含您想要公开的那些类和关系。使用流畅接口将其缩小,并消除您不想要的关系。

然后基于这个受限的DbContext创建一个EfContextProvider的实例。

如果您愿意,可以将此缩减的DbContext专门用于元数据生成。如果有必要,你可以切换到更健壮的东西(包装在不同的EfContextProvider中)。

参见文档章节"EF作为设计工具"