在微风中创建复杂类型的未绑定实例的正确方法是什么?

时间:2013-07-09 09:14:10

标签: breeze

想象一下以下模型:

class ComplexTypeA
{
    public string ComplexPropertyA
}

class ParentTypeA
{
    public string ParentPropertyA
    public ComplextTypeA ParentPropertyB
}

现在进入客户端的微风世界,假设由于各种原因我需要创建一个ComplextTypeA和'attach'的实例(我知道它没有附加,它是复制值,但不能想到另一个更好的词)它稍后是我单独创建的ParentTypeA实例。

简单地说,最好的方法是什么?我已经设法实现了它,但此刻,它是这样的:

manager.metadataStore.getEntityType('ParentTypeA').complexProperties[0].dataType.createInstance()

如果这是正确的方法,那么很酷,我会给自己一个金星。我很担心,虽然文档让它看起来容易得多,但我刚刚找到了一种新的创造性的方式来拍摄自己。

  

这实际上有点不正确,你可以创建'未绑定'   具有complexType.createInstance方法的complexType的实例   但是当你分配它时,你只是将它的值复制到一个   现有实例。

谢谢!

1 个答案:

答案 0 :(得分:2)

请参阅ComplexType.createInstance方法:ComplexType api

示例可能如下所示:

    // The MetadataStore.getEntityType method returns both EntityTypes and ComplexTypes.
    var locationType = myEntityManager.metadataStore.getEntityType("Location");
    // creates a newLocation complex object with all default values
    var newLocation = locationType.createInstance();
    // or create a fully fleshed out version.
    //  var newLocation = locationType.createInstance( { city: "San Francisco", street: "111 Main Street", state: "CA" });