Breeze多列外键错误

时间:2012-12-07 11:50:44

标签: breeze

我想我发现了另一个错误:

我有一个带有多列外键的对象:

public class ConexionPalanca {
    public int ConexionPalancaID { get; set; }

    public int PalancaOrigenID { get; set; }
    public int PerspectivaOrigenID { get; set; }
    public int PanelOrigenID { get; set; }
    public virtual Palanca PalancaOrigen { get; set; }
}

public ConexionPalancaConfiguration() {
        HasKey(cp => cp.ConexionPalancaID);
        Property( p => p.ConexionPalancaID )
            .IsRequired()
            .HasDatabaseGeneratedOption( DatabaseGeneratedOption.Identity );

        HasRequired( cp => cp.PalancaOrigen ).WithMany().HasForeignKey( cp => new { cp.PanelOrigenID, cp.PerspectivaOrigenID, cp.PalancaOrigenID } ).WillCascadeOnDelete( false );
}

我正在尝试使用此功能创建一个新对象:

var createConexion = function (origen, destino, panel) {
    var metadataStore = manager.metadataStore;
    var conexionType = metadataStore.getEntityType("ConexionPalanca");
    var newConexion = conexionType.createEntity();

    manager.addEntity(newConexion);

    newConexion.PalancaDestino(destino);
    newConexion.PalancaOrigen(origen);
    newConexion.Panel(panel);
    newConexion.Activa(true);

    return newConexion;
};

似乎新对象只正确分配了一部分外键(来自saveBundle):

{
 "entities": [
  {
    "ConexionPalancaID": -1,
    "PanelID": 1,
    "PalancaOrigenID": 0,
    "PerspectivaOrigenID": 0,
    "PanelOrigenID": 1,
    "Anchor": "RightMiddle",
    "Activa": true,
    "entityAspect": {
        "entityTypeName": "ConexionPalanca:#CMIMVC4.DOM",
        "entityState": "Added",
        "originalValuesMap": {},
        "autoGeneratedKey": {
        "propertyName": "ConexionPalancaID",
        "autoGeneratedKeyType": "Identity"
      }
    }
  }
],
"saveOptions": {
  "allowConcurrentSaves": false
}
}

我做错了什么还是错误?

谢谢。

1 个答案:

答案 0 :(得分:2)

好的,这是一个bug,现在已经在breeze v0.75.2中修复了......感谢找到它。 :)