NHibernate 3.2 many to many mapping by code

房东的猫 提交于 2019-11-29 02:01:33
// Post Map
Bag(x => x.Tags, collectionMapping =>
                {
                    collectionMapping.Table("TagPosts");
                    collectionMapping.Cascade(Cascade.None);
                    collectionMapping.Key(k => k.Column("PostID"));
                },
                    map => map.ManyToMany(p => p.Column("TagID")));

// Tag Map
Bag(x => x.Posts, collectionMapping =>
                                         {
                                             collectionMapping.Table("TagPosts");
                                             collectionMapping.Cascade(Cascade.None);
                                             collectionMapping.Key(k => k.Column("TagID"));
                                         },
                map => map.ManyToMany(p => p.Column("PostID")));

I think you need to set the key to tell nhibernate which column on the many-to-many table it needs to check, something like this:

// TagMap
bag.Key(k => k.Column("TagId"));

// PostMap
bag.Key(k => k.Column("PostId"));
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!