Javascript breeze.js:如何从breeze元数据集合中排除表/实体?

Javascript breeze.js:如何从breeze元数据集合中排除表/实体?,javascript,metadata,breeze,Javascript,Metadata,Breeze,我有一个单页应用程序,在后端使用实体框架,在客户端使用Breeze.js。我也在使用breeze.NETEF类。为了让breeze客户端在客户端上创建breeze实体,它调用名为“MetaData”的控制器方法。此方法返回数据库中所有实体的集合,即使这些实体可能未在客户端上使用 尽管元数据中没有编码逻辑,但它确实包含数据库的完整模式。其中一些实体用于安全和业务逻辑,我不希望整个结构向世界开放 有没有办法从breezejs元数据集合中排除实体(而不仅仅是单个属性) 谢谢简单的方法是创建一个DbCo

我有一个单页应用程序,在后端使用实体框架,在客户端使用Breeze.js。我也在使用breeze.NETEF类。为了让breeze客户端在客户端上创建breeze实体,它调用名为“MetaData”的控制器方法。此方法返回数据库中所有实体的集合,即使这些实体可能未在客户端上使用

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

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


谢谢

简单的方法是创建一个
DbContext
,它只包含要公开的类和关系。使用fluent界面缩小它,烧灼你不想要的关系

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

如果愿意,您可以专门使用此缩减的
DbContext
来生成元数据。如果必须的话,您可以切换到更健壮的工具(包装在不同的
EfContextProvider
)中


请参阅文档章节。

我认为这会起作用,但我似乎对Breeze如何确定要包括/排除哪些实体存在误解。暂时忽略这个单独的DBContext类。在单个DBContext/EfContextProvider场景中,breeze正在加载元数据中的所有实体(大约20个),尽管我的context类中只有3个DbSet。breeze正在读取实体和关系的edmx文件吗?您是否有一个fluent语句的示例来排除实体?我想,谢谢你把它解决了。由于关系,实体的整个列表都包含在内。3个数据库集的实体与其他实体有FK关系,这些实体也有关系,等等。因此,整个数据库被纳入元数据。我找到了modelBuilder.Ignore语句。看起来这对我很管用。