余烬序列化程序上的动态primaryKey

时间:2019-01-24 13:31:48

标签: javascript ember.js ember-data

我正在尝试在余烬分析器上动态设置primaryKey。有可能吗?

这是我可以从服务器获得的响应

account: {iban: "ibanValue", currency : "currencyValue"} or {bban: "bbanValue"}

Ember代码:

import DS from 'ember-data';
import ApplicationSerializer from './application';

const {
  EmbeddedRecordsMixin,
} = DS;

export default ApplicationSerializer.extend(EmbeddedRecordsMixin, {
  primaryKey: 'iban'
});

我将iban设置为主键,但也可以为bban。如何根据需要将其中之一设置为主键?

1 个答案:

答案 0 :(得分:0)

Ember数据是一个框架,所有框架都有其规则。开发该数据库是为了处理数据,因此它在您的数据信息上强加了一些结构。该规则之一是所有实体(模型)都必须具有ID属性。对于所有信息系统而言,这实际上都是一个很好的良好实践。 就是说,您必须确定要用作id的内容,并且如果出于某些非常奇怪的原因而必须使用可以用作id的其他属性,则是解决此问题的最佳方法以在服务器端进行处理。 在数据中添加新的ID属性,然后在从rest api返回数据之前,可以确定要用作特定记录的id的内容,并通过将其值复制到id属性来明确地进行操作。 这样,余烬数据将始终具有其ID。