2013-03-22 37 views
1

我试图用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; } 
    } 
} 

希望有人能帮助!

回答

0

我认为问题在于你的实体是:tblMovie,而不是tblMovies。

尝试更换:

return this.Manager.createEntity('tblMovies', initialValues); 

有了:

return this.Manager.createEntity('tblMovie', initialValues); 
+0

NOP是没有做的伎俩要么http://postimg.org/image/whthmxds5/ – 2013-03-22 16:18:30

+1

你这样做至少有一个试图创建实体之前查询?如果不是这样的话,metada就不会被取出。 – 2013-03-22 16:22:44

+0

这是一个很好的!我会在星期一检查,爱周末;) 无法抗拒,是的,这是它现在得到进一步的问题,但挂在别的东西,将在星期一检查;) – 2013-03-22 16:24:38