2013-03-22 85 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