使用Breeze via API打开元数据功能实际上等同于公开底层数据库架构。
有没有办法避免打开元数据api调用?我试着不按照建议暴露它。我收到以下错误
查询失败元数据查询失败:/ breeze / NorthWind / Metadata;请求的资源不支持http方法' GET'。
避免暴露Breeze Metadata调用的正确方法是什么。
答案 0 :(得分:2)
除了通过API获取元数据外,您还可以考虑另外几种方法:
从脚本加载元数据。使用此方法,您可以在脚本中嵌入元数据。加载脚本后,可以使用脚本中的元数据初始化Breeze EntityManager,而不是调用API。我发现这种方法对单元测试非常有用,因为不希望访问服务器。有关详细信息,请参阅Load metadata from script。
使用手写的Javascript代码构建元数据以进行配置。您可能不希望为已在Entity Framework中定义的复杂数据模型执行此操作,但如果它不是约束,则它可能很有用。有关此方法的讨论,请参阅Metadata by hand。
获得元数据后,您可以分别使用window.localStorage
和MetadataStore.exportMetadata
导出和导入元数据(例如浏览器的MetadataStore.importMetadata
区域)。
答案 1 :(得分:0)
您需要为Breeze提供某种元数据才能工作。如果您不想公开数据库结构,则必须手动更改生成的元数据,或者在数据库实体和要公开的数据类之间使用另一层。您可以通过数据注释生成中间层的元数据。