2013-05-10 1 views
0

я эта проблема на jayData: Я пытаюсь создать простую базу данных:вопросы создания базы данных Jaydata IndexedDB

var x=$data.Entity.extend("Person", 
{ 
    ID: {type: "int", key:true, required: true}, 
    Name: {type: "string", required: true} 
}); 

$data.EntityContext.extend("PersonDatabase", 
{ 
    People: {type: $data.EntitySet, elementType: Person} 
}); 

var DB1=new PersonDatabase({ 
    provider: 'webSql', 
    databaseName:'DB1', 
}); 

Который работает отлично. Но когда я просто переключаю тип базы данных на indexxedDb, он ничего не делает.

var x=$data.Entity.extend("Person", 
{ 
    ID: {type: "int", key:true, required: true}, 
    Name: {type: "string", required: true} 
}); 

$data.EntityContext.extend("PersonDatabase", 
{ 
    People: {type: $data.EntitySet, elementType: Person} 
}); 

var DB1=new PersonDatabase({ 
    provider: 'indexedDb', 
    databaseName:'DB1', 
    version: 1 
}); 

Любые идеи?

ответ

1

Существует только одна вещь, чтобы исправить в этом коде: поле ID должно быть вычислен вместо требуется. После его изменения JayData будет автоматически генерировать идентификатор для вас.

var x=$data.Entity.extend("Person", 
{ 
    Id: {type: "int", key:true, computed: true}, 
    Name: {type: "string", required: true} 
}); 

$data.EntityContext.extend("PersonDatabase", 
{ 
    People: {type: $data.EntitySet, elementType: Person} 
}); 

var DB1=new PersonDatabase({ provider: 'indexedDb', databaseName:'DB1', version: 1 }); 

DB1.onReady(function() { 
    DB1.People.add({ Name: 'Jay Data'}); 
    DB1.saveChanges(); 
}); 

Это исправление проблемы?

+0

К сожалению, нет. Я пробовал точно такой же код, но база данных indexeddb не создавалась. Когда я смотрю, что для переменной DB1, я вижу: PersonDatabase {lazyLoad: false, trackChanges: false, _entitySetReferences: Object, _storageModel: Array [1], _isOK: «Ошибка провайдера не удалась!» ...}. У тебя есть идеи? – AutomaticHourglass

+0

Попробуйте включить /jaydataproviders/IndexedDbProvider.js после jaydata.js. – Robesz

+0

Один вопрос: в каком браузере это происходит? – Robesz