Do you want to find all File
objects, for which any of the elements in Keywords
are present in the collection of keywords you passed into the method?
Doing anything with the Keyword
class inside your query is apparently a no-no. As your error suggests, it can only translate primitive types.
var names = keywords.Select(x => x.Name).ToList();
return Context.Files.Where(x => keywords.Select(y => y.Name).Intersect(names).Any());