Utilizzo di quattro tabelle.Ordine LinqIn caso di interruzioni con proprietà di navigazione nulle
Utenti -> ha informazioni utente di base tra cui un'userid e una DepartmentID (int)
Gruppi -> informazioni sul gruppo di base tra cui un GroupID
GroupsMembers -> tabella che ha il rapporto tra un gruppo e suoi membri, molti a molti, così groupid e userid sono le colonne
dipartimenti -> Info Dipartimento di base tra cui deptid
ho un fk dal DepartmentID nella tabella utenti al id deparmtnet nella tabella reparti.
FK da gruppi GroupID a groupsmembers GroupID FK da parte degli utenti userid a groupsmembers userid
Questo permette ai gruppi nel edmx di avere una proprietà gli utenti di navigazione che avrà tutti i membri del gruppo.
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);
}
Sono incluso Users.Department.
Il problema deriva dal fatto che gli utenti non devono disporre di un reparto, pertanto la colonna departmentid è annullabile. Se ci sono utenti per i quali il departmentid è nullo, il orderby si interrompe e dice che u.Department è nullo. Se nessun dipartimento è nullo, funziona alla grande. Ho bisogno di un modo per ordinare in base a Department.Name anche se ci sono dei reparti nulli. Eventuali suggerimenti?
perfetto. Stavo pensando a quello da solo, ma non ero sicuro che il confronto sarebbe stato fatto su un record per record :-) – Steph