У меня есть два типа User
и Area
.
public class User : IEntity
{
public int UserId { get; set; }
public string Username { get; set; }
public int AreaId { get; set; }
public string CreatedByUserName { get; set; }
public DateTime CreatedDateTime { get; set; }
public string LastModifiedByUserName { get; set; }
public DateTime? LastModifiedDateTime { get; set; }
}
public class Area : IEntity
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual int DefaultAdminId { get; set; }
public string CreatedByUserName { get; set; }
public DateTime CreatedDateTime { get; set; }
public string LastModifiedByUserName { get; set; }
public DateTime? LastModifiedDateTime { get; set; }
//Navigation properties
public virtual ICollection<User> Users { get; set; }
}
Area
может содержать целую группу Users
.Я хотел создать словарь, в котором имя Area
является ключом, и каждый ключ будет содержать Users
в этом Area
для значений ключа.
Так что это было достигнуто в ответена другой мой вопрос, используя:
var dictionary = Areas.ToDictionary(s => s.Name, s => s.Users.Where(c => c.AreaId == s.Id));
Это замечательно, но если Area
не содержит Users
, он все равно помещается в словарь, а это не то, что я хочу.
Может, кто-нибудь подскажет, как бы я пропустил ключи Areas
, которые не содержат Users
?