gpt4 book ai didi

asp.net-mvc-4 - 我必须使用 BreezeController 吗?

转载 作者:行者123 更新时间:2023-12-04 05:08:12 43 4
gpt4 key购买 nike

to-do list sample正在使用 BreezeController 来提供 API。 EFContextProvider用于提供Metadata字符串和方法,如 SaveChanges() .

问题:它直接与 DbContext 对话.我仍然希望能够灵活地返回我自己的 View 模型而不是那些域模型。

在常规 ApiController ,我们可以轻松返回我们自己的 View 模型。但如果我转向常规 ApiController , 调用api时,breeze索取 Metadata ,由

[HttpGet]
public string Metadata() {
return _contextProvider.Metadata();
}

如果我们使用 BreezeController .

所以,我的问题是,我们是否必须使用 BreezeController ?我们如何使用它返回自定义的 View 模型?或者,如果我们使用常规 ApiController为了获得更大的灵活性,我们如何提供 Metadata ?

最佳答案

“BreezeController”只是具有“BreezeController”属性的任何 API Controller 。

“BreezeController”只是一个 .NET 属性,它帮助 .NET WebApi 通过 OData“语法”提供对查询过滤和排序的支持,以及对实体图和类型标识的 json 序列化支持。类型标识很重要,因此 Breeze 可以跟踪其 entityManager 中的实体并合并查询结果和更新关系属性。

仅当您希望服务器提供有关查询可以返回的类型的元数据时,才需要“元数据”方法。同样的元数据也可以提供给“客户端”,这样你就不必实现这个方法。 Breeze 示例 zip 中的 NoDb 示例包含一个示例。

返回域模型而不是 View 模型没有任何轻而易举的要求。要么有效。您只需为您使用的任何模型返回的类型提供元数据。如果您想根据一些任意客户端信息执行自定义服务器端逻辑,还可以查看 EntityQuery 'withParameters' 方法。

关于asp.net-mvc-4 - 我必须使用 BreezeController 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15235435/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com