I am using FluentNH with automapping and conventions. I set up a Many-to-Many convention as such:
public class HasManyToManyConvention : IHasManyToManyConvention
{
public void Apply(IManyToManyCollectionInstance instance)
{
instance.Key.Column(instance.EntityType.Name + "Id");
instance.Relationship.Column(instance.Relationship.StringIdentifierForModel + "Id");
}
}
Assuming these are my tables: User(Id,Username,Password), Role(Id,Name)
Upon database generation, the associative table is being generated fine: UserInRole(UserId,RoleId)
However, it has no composite primary key set. Any idea how to fix this from the convention?
Anyone? Might it be this is currently not supported by Fluent?
instance.Relationship.Column()
adds another to the existing columns that are in theinstance.Relation.Columns
collection so that explains why you're getting a composite primary key set. I'm currently looking into a way of resetting the columns but so far I've been out of luck. – Sandor Drieënhuizen