breeze.js :如何从 breeze 元数据收集中排除 tables/entities?

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

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

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

有没有办法从 breezejs 元数据集合中排除实体(而不仅仅是单个属性)?

谢谢

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

然后根据这个有限的DbContext创建一个EfContextProvider的实例。

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

请参阅文档章节 "EF as a Design Tool"