我正在开发一个使用GUID作为主键类型的项目,我也在客户端使用breeze和angular。问题是当我尝试在客户端更新数据时,接收到的数据会被添加到旧数据中,但我想刷新数据。我使用代码优先处理来为breeze.js生成元数据 这是我的模型类的一部分:
public class Peripherals
{
public Guid PeripheralId { get; set; }
public string Name { get; set; }
public string IpAddress { get; set; }
这是刷新数据的函数:
function getAll(forceRemote, page, size, nameFilter) {
var self = this;
// Only return a page worth of devices
var take = size || 20;
var skip = page ? (page - 1) * size : 0;
if (self._areItemsLoaded() && !forceRemote) {
// Get the page of devices from local cache
return self.$q.when(getByPage());
}
// Load all devices to cache via remote query
return EntityQuery.from('Devices')
.orderBy(orderBy)
.toType(entityName)
.using(self.manager).execute()
.then(querySucceeded)
.catch(self._queryFailed);
function querySucceeded(data) {
self._areItemsLoaded(true);
self.log('Retrieved [Devices] from remote data source', data.results.length, true);
return getByPage();
}
function getByPage() {
var predicate = null;
if (nameFilter) {
predicate = _devicePredicate(nameFilter);
}
var devices = EntityQuery.from(entityName)
.where(predicate)
.orderBy(orderBy)
.toType(entityName)
.take(take).skip(skip)
.using(self.manager)
.executeLocally();
return devices;
}
}
GUID类型有问题吗?或者什么?
答案 0 :(得分:0)
您需要确保同一记录的guid始终相同。 您还应该将主键设置为在实体的元数据上计算