The context is the following:
A person may belong to a group (he would be a member) and may be admin of a group. This is modeled like this in code-first:
class Group
{
[InverseProperty("GroupsWhereIamAdmin")]
public virtual ICollection<Person> Admins {get; set;}
[InverseProperty("GroupsWhereIamMember")]
public virtual ICollection<Person> Members {get; set;}
}
class Person
{
[InverseProperty("Members")]
public virtual ICollection<Group> GroupsWhereIamMember {get; set;}
[InverseProperty("Admins")]
public virtual ICollection<Group> GroupsWhereIamAdmin {get; set;}
}
The problem is that the name of the generated tables are these:
GroupPersons
GroupPersons1
And I would like them to be:
GroupAdmins
GroupMembers
How can I achieve this in a simple way? (ie: using attributes)