2011-04-01 6 views
5

NHibernateでリストなどの順序付きコレクションを使用してコレクションをマッピングするには、インデックス列フィールドをマップする必要があります。私はちょうどNHibernate 2.0のように、インデックスの代わりに使うことができる(私が信じる) "リストインデックス"プロパティがあるように見えることに気づいた。'index'と 'list-index'の違い

"list-index"でベースインデックス値を指定できないのと同じように、2つの違いがありますか? 1つのVSを他のVSを使用する利点?

答えて

3

私は同じ質問を持っていたし、読みコード。私は、次を発見した:

私には意味(NH 3.0、CFG \コレクションBinder.cs、#548)

private void BindCollectionIndex(/*...*/) 
{ 
    // ... 

    if (listMapping.ListIndex != null) 
    { 
     iv = new SimpleValue(model.CollectionTable); 
     new ValuePropertyBinder(iv, Mappings).BindSimpleValue(
      listMapping.ListIndex, 
      IndexedCollection.DefaultIndexColumnName, 
      model.IsOneToMany); 
    } 
    else if (listMapping.Index != null) 
    { 
     iv = new SimpleValue(model.CollectionTable); 
     listMapping.Index.type = NHibernateUtil.Int32.Name; 
     new ValuePropertyBinder(iv, Mappings).BindSimpleValue(
      listMapping.Index, 
      IndexedCollection.DefaultIndexColumnName, 
      model.IsOneToMany); 
    } 
    // ... 
} 

  • それは基本的に同じです。
  • list-indexindexの種類がintに設定されているindex
  • 上書き。したがって、マッピングファイルで別のタイプを使用しているときに実際に何が起きているかを確認する必要がありました。
  • list-indexbaseをサポートして、どのインデックスを開始するかを指示します。 (これは他の場所にあります)
0

XSDを見ることによって、私はそれはおそらく、カスタムタイプで使用できるようにindexは、typeと複数columnsを指定してサポートして伝えることができますが(私は試していない)

関連する問題