Работа с четырьмя таблицами.
Пользователи -> имеет базовую информацию о пользователе, включая ИД пользователя и пароль (int)
Группы -> основная информация о группе, включая идентификатор группы
GroupsMembers -> таблица, которая имеет отношение между группой и ее членами, отношение многие ко многим, поэтому groupid и userid - это столбцы
Отделы -> основная информация об отделе, включая deptid
У меня есть fk от департамента в таблице пользователей до идентификатора deparmtnet в таблице отделов.
FK от группы groupid до groupsmembers groupid
FK от пользователя userid к группам членов userid
Это позволяет группам в edmx иметь свойство навигации пользователей, которое будет иметь всех членов группы.
var grp = grpSource.FirstOrDefault(g => g.GroupID == groupID)
if (grp.GroupID > 0)
{
var userQuery = from u in grp.Users
where !u.Deleted
select u;
userQuery = userQuery.OrderBy(u => u.Department.Name);
}
Я включаю Users.Department.
Проблема возникает из-за того, что у пользователей нет необходимости в отделе, поэтому столбец департамента обнуляется. Если есть какие-либо пользователи, для которых отправление имеет значение null, порядок прерывается и говорит, что u.Department имеет значение null. Если никакие компоненты не равны нулю, это прекрасно работает. Мне нужен способ сортировки на основе Department.Name, даже если есть нулевые департаменты. Есть предложения?