Why not use Linq to Entities. Currently you are retrieving all keywords and then processing them but if you write a query with some joins it is possible to retrieve it using one linq query.

Note: if you need missing navigation properties you can add them, currently the link table UserKeyEntity is separate from Users but a UserKeyEntity navigation property can be added.