使用Breeze创建新实体时初始化导航属性

时间:2014-06-21 20:39:05

标签: breeze navigation-properties

我将简单模型定义为

public class Project
{
    public int Id { get; set; }

    public string Title { get; set; }

    public string Description { get; set; }

    public int StatusId { get; set; }

    public virtual Status Status { get; set; }
}

public class Status
{
    public int Id { get; set; }
    public string Name { get; set; }
}

所以,目前如果我尝试使用breeze创建一个新的Project Entity,它会使用null初始化导航属性“Status”。如何使用默认值初始化它?请注意,我不希望任何绑定与该字段的下拉字段至少对于创建操作。

function createNewProject() {
     return manager.createEntity('Project');
}

1 个答案:

答案 0 :(得分:1)

您可以为Project实体类型定义自定义构造函数,并在其中设置默认的StatusId值。 Status导航属性将设置为相关的状态实体(假设实体位于breeze缓存中)。例如:

function Project() {
    this.StatusId = desiredDefaultStatusEntityId;
}

var manager = new breeze.EntityManager('...');
manager.metadataStore.registerEntityTypeCtor('Project', Project);

请查看Extending entities以获取有关扩展实体的更多信息。