У меня есть вопрос, который я могу переосмыслить на данный момент, но здесь идет ...
У меня есть 2 класса пользователей и групп. Пользователи и группы имеют отношение «многие ко многим», и я подумал, что в объединяющей таблице group_users я хотел иметь свойство IsAuthorized (поскольку некоторые группы являются частными - пользователям потребуется авторизация).
Вы бы порекомендовали создать класс для таблицы соединений, а также для таблицы пользователей и групп? В настоящее время мои классы выглядят следующим образом.
public class Groups
{
public Groups()
{
members = new List<Person>();
}
...
public virtual IList<Person> members { get; set; }
}
public class User
{
public User()
{
groups = new Groups()
}
...
public virtual IList<Groups> groups{ get; set; }
}
Мое сопоставление похоже на следующее в обоих классах (я показываю только одно в сопоставлении пользователей, но они очень похожи):
HasManyToMany<Groups>(x => x.Groups)
.WithTableName("GroupMembers")
.WithParentKeyColumn("UserID")
.WithChildKeyColumn("GroupID")
.Cascade.SaveUpdate();
Должен ли я написать класс для таблицы соединений, который выглядит следующим образом?
public class GroupMembers
{
public virtual string GroupID { get; set; }
public virtual string PersonID { get; set; }
public virtual bool WaitingForAccept { get; set; }
}
Мне бы очень хотелось изменить статус членства в группе, и я думаю, что я пытаюсь придумать лучший способ сделать это.