Breeze createEntity Тип не распознан

Я пытаюсь позвонить на сервер с помощью BreezeJS, но не могу заставить его работать. Пишет, что tblMovie не распознан. Не могу найти проблему :С

Когда я хочу добавить новый фильм, он говорит об этом.

показать.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; }
    }
}

Надеюсь, кто-то может помочь!


person Leroy Meijer    schedule 22.03.2013    source источник


Ответы (1)


Я думаю, что проблема в том, что ваша сущность: tblMovie, а не tblMovies.

Попробуйте заменить:

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

С участием:

return this.Manager.createEntity('tblMovie', initialValues);
person Julián Yuste    schedule 22.03.2013
comment
Выполняете ли вы хотя бы один запрос, прежде чем пытаться создать сущность? Если бы не проблема, метада не была бы получена. - person Julián Yuste; 22.03.2013
comment
Этот подходит! Я проверю это в понедельник, я люблю выходные ;) Не удержался, да, это была проблема, теперь она продвигается дальше, но зависает на чем-то другом, проверим в понедельник ;) - person Leroy Meijer; 22.03.2013
comment
Если это проблема, одним из решений является вызов fetchMetadata при инициализации приложения, чтобы убедиться, что метаданные присутствуют при попытке создать объект. - person Julián Yuste; 22.03.2013