Breeze createEntity Type not recognized
问题描述:
我试图用BreezeJS调用服务器,但无法让它工作。它说tblMovie不被识别。我找不到问题:SBreeze createEntity Type not recognized
当我想添加一个新的电影它说的这样。
show.js
self.viewAddMovieModal = function() {
self.app.showModal(new self.addmovie()).then(function (result) {
if (result != undefined) {
var movie = dataservice.createMovie({
Title: result[0].title,
Director: result[0].director
});
if (movie.entityAspect.validateEntity()) {
self.movies.push(new movie(result[0].title, result[0].director));
dataservice.saveChanges();
} else {
alert("Error");
}
}
});
};
我dataservice.js层
/// <reference path="../../Scripts/breeze.debug.js"/>
define(["require"], function (require) {
var Dataservice = (function() {
function Dataservice(service) {
this.serviceName = '';
this._isSaving = false;
this.serviceName = service;
this.Manager = new breeze.EntityManager(this.serviceName);
this.EntityQuery = new breeze.EntityQuery();
}
Dataservice.prototype.getAllMovies = function() {
this.EntityQuery = breeze.EntityQuery.from("AllMovies");
return this.Manager.executeQuery(this.EntityQuery);
};
Dataservice.prototype.createMovie = function (initialValues) {
return this.Manager.createEntity('tblMovies', initialValues); //THis is where it goes wrong :(
};
Dataservice.prototype.saveChanges = function (suppressLogIfNothingToSave) {
if (this.Manager.hasChanges()) {
if (this._isSaving) {
setTimeout(this.saveChanges, 50);
return;
}
this.Manager.saveChanges().then(this.saveSucceeded).fail(this.saveFailed).fin(this.saveFinished);
} else if (!suppressLogIfNothingToSave) {
}
};
Dataservice.prototype.saveSucceeded = function (saveResult) {
this._isSaving = false;
};
Dataservice.prototype.saveFailed = function (error) {
};
Dataservice.prototype.saveFinished = function() {
this._isSaving = false;
};
return Dataservice;
})();
return Dataservice;
})
我有一个模型tblMovie
using System;
using System.ComponentModel.DataAnnotations;
namespace DurandalMovieApp.Models
{
public class tblMovie
{
[Key]
public int MovieID { get; set; }
public string Title { get; set; }
public string Director { get; set; }
}
}
希望有人能帮助!
答
我认为问题在于你的实体是:tblMovie,而不是tblMovies。
尝试更换:
return this.Manager.createEntity('tblMovies', initialValues);
有了:
return this.Manager.createEntity('tblMovie', initialValues);
NOP是没有做的伎俩要么http://postimg.org/image/whthmxds5/ – 2013-03-22 16:18:30
你这样做至少有一个试图创建实体之前查询?如果不是这样的话,metada就不会被取出。 – 2013-03-22 16:22:44
这是一个很好的!我会在星期一检查,爱周末;) 无法抗拒,是的,这是它现在得到进一步的问题,但挂在别的东西,将在星期一检查;) – 2013-03-22 16:24:38