2011-04-01 43 views
5

Đối với ánh xạ bộ sưu tập trong NHibernate với các bộ sưu tập được sắp xếp như danh sách, trường cột chỉ mục phải được ánh xạ. Tôi chỉ nhận thấy rằng, như NHibernate 2.0, có vẻ như là một "danh sách chỉ mục" tài sản là tốt, mà (tôi tin) có thể được sử dụng ở vị trí của chỉ mục.Sự khác biệt giữa 'chỉ mục' và 'danh sách-chỉ mục'

Ngoài việc có thể chỉ định giá trị chỉ mục cơ sở với "danh sách chỉ mục", có sự khác biệt giữa hai danh sách không? Bất kỳ lợi thế để sử dụng một VS khác?

Trả lời

3

Tôi có cùng một câu hỏi và đọc mã. Tôi thấy như sau:

(NH 3.0, CFG \ Collection 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); 
    } 
    // ... 
} 

Có nghĩa là với tôi:

  • Nó là cơ bản giống nhau.
  • list-index ghi đè index
  • Các loại index được thiết lập để int. Vì vậy, bạn phải kiểm tra những gì thực sự xảy ra khi sử dụng một loại khác trong tệp ánh xạ.
  • list-index hỗ trợ base để cho biết chỉ mục nào sẽ bắt đầu. (Điều này được tìm thấy ở một nơi khác)
0

Bằng cách nhìn vào XSD, tôi có thể nói index hỗ trợ xác định một type và nhiều columns, vì vậy nó có lẽ có thể được sử dụng với các loại tùy chỉnh (tôi chưa thử)

Các vấn đề liên quan