2012-12-04 69 views
0

我想我發現了一個錯誤。微風中可能存在的錯誤

什麼我做的是以下幾點:

  1. 我創建了一個新的實體和實體添加到管理員。

    var createConexion = function (origen, destino) { 
        var metadataStore = manager.metadataStore; 
        var conexionType = metadataStore.getEntityType("ConexionPalanca"); 
        var newConexion = conexionType.createEntity(); 
    
        newConexion.PalancaDestinoID(destino.PalancaID()); 
        newConexion.PalancaOrigenID(origen.PalancaID()); 
        newConexion.Activa(true); 
    
        manager.addEntity(newConexion); 
    
        return newConexion; 
    }; 
    
  2. 取消更改。

    var cancelChanges = function() { 
        return manager.rejectChanges(); 
    }; 
    
  3. 我運行本地查詢。

    var getConexiones = function() { 
         var query = EntityQuery.from("ConexionesPalancas"); 
         return manager.executeQueryLocally(query); 
        }; 
    

執行這些步驟,我得到的時候executeQueryLocally被稱爲以下錯誤:

Uncaught TypeError: Can not read property 'entityAspect' of null at line 9249 (breeze.js) 

我使用的微風0.74.2

編輯:這是模型我」 m使用:

public class Palanca { 
    public int PalancaID { get; set; } 
    /*More properties ommited*/ 
    public virtual ICollection<ConexionPalanca> ConexionesSalientes { get; set; } 
    public virtual ICollection<ConexionPalanca> ConexionesEntrantes { get; set; } 
} 

public class ConexionPalanca { 
    public int PalancaOrigenID { get; set; } 
    public virtual Palanca PalancaOrigen { get; set; } 

    public int PalancaDestinoID { get; set; } 
    public virtual Palanca PalancaDestino { get; set; } 
    public string Anchor { get; set; } 
} 

public class PalancaConfiguration : EntityTypeConfiguration<Palanca> { 
    public PalancaConfiguration() : base() { 
    HasKey(p => p.PalancaID); 
    Property(p => p.PalancaID) 
      .IsRequired() 
      .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); 
    HasMany(p => p.ConexionesSalientes).WithRequired(cp => cp.PalancaOrigen).HasForeignKey(cp=>cp.PalancaOrigenID); 
    HasMany(p => p.ConexionesEntrantes).WithRequired(cp => cp.PalancaDestino).HasForeignKey(cp => cp.PalancaDestinoID).WillCascadeOnDelete(false); 
    } 
} 

public class ConexionPalancaConfiguration : EntityTypeConfiguration<ConexionPalanca> { 
    public ConexionPalancaConfiguration() { 
     HasKey(cp => new {cp.PalancaOrigenID, cp.PalancaDestinoID}); 

     HasRequired(cp => cp.PalancaOrigen).WithMany(p => p.ConexionesSalientes).HasForeignKey(cp => cp.PalancaOrigenID); 
     HasRequired(cp => cp.PalancaDestino).WithMany(p=>p.ConexionesEntrantes).HasForeignKey(cp => cp.PalancaDestinoID); 
    } 
} 
+0

我確認了這個錯誤,我們正在跟蹤它。我預測我們會在週末之前解決問題(本週我們有點短暫)。 – Ward

+0

好的,Thx。你能發表這個評論作爲答案,所以我可以接受它嗎? –

回答

1

這是一個錯誤。它已在v 0.74.3中修復,可通過微風網站或通過nuget獲得。請讓我們知道這是否糾正了這個問題。

+0

它現在有效。謝謝。 –

0

我發現了一個類似的錯誤。事實證明,這個錯誤在我身邊。看來你正在建立一個連接表。確保您的模型使用ForeignKey屬性(或流暢的API)正確配置。 爲什麼你自己設置身份證,如果不是這樣,讓微風處理它?

newConexion.PalancaDestinoID(destino); <--- 
newConexion.PalancaOrigenID(origen); <--- 
newConexion.Activa(true); 

以下效果很好:

createTeamUser = function (user, team, temporary) { 
      var teamUserType = metadataStore.getEntityType("TeamUsers"); 
      var newTeamUser = teamUserType.createEntity(); 
      newTeamTemp = manager.addEntity(newTeamUser); 
      newTeamUser.Team(team); 
      newTeamUser.User(user); 



      user.TeamUsers().push(newTeamTemp); 
      team.TeamUsers().push(newTeamTemp); 
      return newTeamTemp; 
     }, 

有這位模特:

public class TeamUsers 
{ 
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public long TeamUsersId { get; set; } 

    public long TeamId { get; set; } 
    [ForeignKey("TeamId")] 
    [InverseProperty("TeamUsers")] 
    public Team Team { get; set; } 

    public long UserId { get; set; } 
    [ForeignKey("UserId")]   //<---- Withour these attributes i got a null error too 
    [InverseProperty("TeamUsers")] //<---- 
    public User User { get; set; } 

    public bool Temporary { get; set; } 

    //[Timestamp] 
    //public byte[] TimeStamp { get; set; } 
} 

與在User模型這一領域:

[InverseProperty("User")] 
    public ICollection<TeamUsers> TeamUsers { get; set; } 

問題:Julianyus添加吶在將新實體添加到管理器之前,將其分配給vigation屬性。他正在設置detached實體的屬性。據我瞭解,微風 - Docs與實體做的一切都應該在將其添加到經理/現金後。在添加到緩存之前使用實體是否安全?

+0

我在將實體添加到管理器之前添加了導航屬性,因爲它們是主鍵。 –

+0

閱讀文檔,我知道結果是相同的分配導航屬性或分配外鍵(如在實體框架中) –

+0

這是一個真正的錯誤。看到我對這個問題本身的評論 – Ward