Praca z czterema tabelami.Linq OrderBy zrywa z właściwością nawigacji, która jest nieważna
Użytkownicy -> zawiera podstawowe informacje użytkownika w tym identyfikatora użytkownika i departmentid (int)
grup -> Podstawowe informacje grupa w tym GroupID
GroupsMembers -> tabela, która ma związek między grupą i to członków, wielu wiele relacji, więc GroupID i userid są kolumnami
działy -> podstawowe informacje Dział tym deptid
mam FK z departmentid w tabeli użytkownikom id deparmtnet w tabeli działów.
FK z grup GroupID do groupsmembers GroupID FK od użytkowników id_uzytkownika do groupsmembers identyfikatora
Pozwala to grupy w edmx mieć właściwość użytkownikom nawigację, która będzie miała wszystkich członków grupy.
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);
}
Dołączam Users.Department.
Problem pojawia się, ponieważ użytkownicy nie muszą mieć działu, więc kolumna departid jest pusta. Jeśli są jacyś użytkownicy, dla których departid ma wartość null, kolejność jest zerwana i mówi u.Department ma wartość null. Jeśli żaden dział nie jest pusty, działa dobrze. Potrzebuję sposobu sortowania na podstawie nazwy departamentu, nawet jeśli istnieją puste departamenty. Jakieś sugestie?
doskonała. Robiłem to na własną rękę, ale myślę, że nie byłbym pewien, czy porównanie będzie wykonane na podstawie rekordu :-) – Steph