【发布时间】:2015-04-07 19:20:41
【问题描述】:
我正在开发一个基于 Nancy 和 nHibernate 的 REST API。与大多数 REST API 一样,我想限制当资源显示为集合 (/customers) 的一部分时显示的属性数量与显示为资源 (customers/1) 时显示的属性数量相比。
显然,我可以在来回映射东西的地方拼凑一些东西,但我正在寻找最通用的解决方案。我看到了两种策略:
- 修改序列化 - 所以从 nHibernate 加载完整的对象 但有一个确定要显示哪些属性的策略。我有 未成功尝试自定义 JsonNet 的序列化所以 它尊重对象是否被转换为接口(即。 ICustomerReference)或基类(以便完整的“客户”继承自 更简单的“CustomerReference”类)
- 修改数据模型和 nHibernate 模型,使其遵循后一种想法 上面提到,完整的“客户”类继承自更简单的“客户参考”类。还 不成功,因为 nHibernate 会给我完整的对象,即使我要求它加载/获取“CustomerReference”类。
如果我需要澄清任何事情,请告诉我。
【问题讨论】:
-
您是否需要将客户参考资料持久化回数据库?还是仅用于展示目的?
-
显然,如果客户可以在创建订单时被 PUT,我将是一个不错的功能。但就目前而言,绝对没有。
标签: c# nhibernate json.net nancy