Tôi đang cố gắng tìm ra cách ánh xạ một thuộc tính IDictionary trong thông thạo 1.0 RTM.Mã thông thạo để ánh xạ IDictionary <SomeEntity, int>?
Từ sự hiểu biết của tôi, điều này chuyển thành liên kết ba năm.
Ví dụ:
class Bar
{
public IDictionary<SomeEntity, int> Foo {get; set;}
}
Bar.hbm.xml sau đó sẽ chứa:
<map name="Foo" table="BarFooTable">
<key column="..."/>
<index-many-to-many class="SomeEntity" column="SomeEntity_Id"/>
<element column="Value" type="int"/>
</map>
tôi sẽ có gì để viết trong nhibernate thạo để tạo ra bản đồ xml này?
Điểm quan tâm ở đây là khóa là loại thực thể trong khi giá trị là một loại giá trị. (sửa đổi: Ít nhất, điều này dường như để phân biệt chính nó từ các ví dụ khác nhau và câu hỏi nổi xung quanh trên stackoverflow hoặc nhóm google, đó là giá trị giá trị hoặc khóa-key)
Sau nhiều thử nghiệm tôi có thể tạo bản đồ cho một IDictionary<SomeEntity,SomeEntity>
(các loại thực thể tinh khiết):
HasManyToMany(x => x.Foo)
.AsMap("Key")
.AsTernaryAssociation("Key2", "Value")
;
tôi cũng có thể tạo ra một bản đồ cho một (kiểu giá trị tinh khiết) IDictionary<int,int>
:
HasMany(x => x.Foo)
.AsMap<int>("Key")
.Element("Value")
;
tôi thậm chí có thể nhận được một số cách để tạo ra một bản đồ cho một IDictionary<int, SomeValue)
, mặc dù không có NHibernate nào sẽ chấp nhận.
Nhưng tôi không thể tìm ra cách tạo bản đồ cho IDictionary<SomeValue, int>
đó là những gì tôi muốn. Ai đó có thể cung cấp một số lời khuyên?
crossposted để http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/b1b335ff5f9a6a40 – fostandy