微风错误:无法通过名称找到“类型”:'xxx'。请务必先执行查询或调用fetchMetadata

时间:2013-11-01 04:16:47

标签: entity-framework angularjs breeze

我知道同样的问题已被问到here。但是,这个答案并没有解决我的问题,因为在我的项目中,我没有指定“hasServerMetadata:false”。实际上,大多数时候,我都没有得到这个错误。

当我尝试创建新学生时出现此错误(第一次没问题),并且在编辑模式下,如果我单击浏览器的刷新按钮,则会出现此错误。如果我编辑现有学生,我没有这个问题。

我的项目基本上基于Breeze / Angular SPA ToDo模板。

以下是一些相关代码。

型号:

public class Student
{
    public int Id { get; set; }
    public string LastName { get; set; }
    public string FirstName { get; set; }

    [ForeignKey("ContactInfo")]
    public int ContactInfoId { get; set; }
    public ContactInfo ContactInfo { get; set; }
}

public class ContactInfo
{
    public int Id { get; set; }
    public string Street { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string ZipCode { get; set; }
}

datacontext.js:

function createStudent() {
    var student = manager.createEntity("Student", { createdOn: new Date() });
    student.contactInfo = manager.createEntity("ContactInfo");
    student.contactInfo.state = "TX";
    return student;
}

1 个答案:

答案 0 :(得分:0)

根据互联网上的其他帖子,您必须致电

manager.fetchMetadata(); 

在创建新实体之前。