2013-04-02 28 views
0

我想添加一個實體到我的管理器。 經理保存在我的MasterView模型中,我正在使用淘汰賽。微風 - 定義添加實體的密鑰

Error: Cannot attach an object to an EntityManager without first setting its key or setting its entityType 'AutoGeneratedKeyType' property to something other than 'None' 

我的代碼:

var item = {   
     GuidUser: masterViewModel.UserID, 
     GuidProject: ProjectID, 
     Start: startTime, 
     End: stopTime, 
     Description: workDone, 
     IdCustomer: null, 
     timestampId: null, 
     Charged: false, 
     ToCharge: toCharge, 
     }; 
var item2 = masterViewModel.breezeProjectManager().createEntity('Timestamp', item); 
masterViewModel.breezeProjectManager().addEntity(item2); 

但是如何設置一個按鍵?

回答

0

當首次定義任何EntityType時,它至少應該有一個DataProperty,它的'isPartOfKey'屬性設置爲true。任何EntityType的元數據要麼是物理化的,要麼是從服務器返回元數據的結果,要麼是在客戶端上創建的。無論哪種情況,都必須先創建「EntityType」元數據,然後才能創建任何類型的實體。

我的猜測是,您尚未提取元數據或創建它,當您第一次嘗試創建實體時在你的情況,你可以嘗試創建您的實體之前進行fetchMetadata電話。即

breezeProjectManager().metadataStore.fetchMetadata().then(function() { 
    .. perform your creation and add logic here. 
} 

另一種可能性是,無論哪個字段(或字段)與「isPartOfKey」 = TRUE,尚未確定在調用'addEntity'前設置爲非空值

+0

但如何設置'isPartOfKey'= true爲我的Guid在時間戳? – spitzbuaamy

+0

如何通過fetchMetadata調用或直接通過創建entityType來定義entityType? –

0

請嘗試以下操作:

var item2 = masterViewModel.breezeProjectManager() 
      .createEntity('item', { timestampId: breeze.core.getUuid() }); 
+0

如果要將實體創建爲JavaScript模型而不是數據庫,請參閱此鏈接以獲取完整說明。 http://www.breezejs.com/samples/nodb – Apmis

相關問題