2017-02-17 29 views
0

我正在使用Web API和NHibernate的Breeze。以下NHibernate的映射類型(這可能是很少使用)導致微風錯誤消息「沒有關聯」類NHMetadataBuilder的方法MakeAssociationProperty:使用帶有特殊NHibernate映射的BreezeJS的「不是關聯」

<set name="Zugnummern" 
    table="USER_ZUGNUMMER_T" 
    lazy="true" 
    cascade="save-update"> 
    <key column="USER_ID" /> 
    <element column="TRAIN_NO" 
     type="string" 
     length="6" 
     not-null="true" 
     unique="false" /> 
</set> 

如何使用微風這個特殊的NHibernate的映射?

回答

0

異常「未關聯」將通過檢查collectionPersister是否是要麼ManyToManyOneToManyBreezeContextProvider.NHNHMetadataBuilder.MakeAssociationProperty的方法,因爲這兩個條件將用於屬性‘Zugnummern’上述樣本組映射false來防止:

// inverse foreign key 
var collectionPersister = joinable as AbstractCollectionPersister; 
if (collectionPersister != null) 
{ 
     if (collectionPersister.IsManyToMany || collectionPersister.IsOneToMany) 
     { 
      // many-to-many relationships do not have a direct connection on the client or in metadata 
      var elementPersister = collectionPersister.ElementPersister as AbstractEntityPersister; 
      if (elementPersister != null) 
      { 
       fkNames = GetPropertyNamesForColumns(elementPersister, columnNames); 
       if (fkNames != null) 
        nmap.Add("invForeignKeyNamesOnServer", fkNames); 
      } 
     } 
}