Método no estático requiere un objetivo?

Nunca antes había visto este error y es muy confuso. En esencia, estoy tratando de hacer algo donde digo que me encuentre todas las ubicaciones (solo devolverá una) que coincidan con el nombre de la ubicación y el tipo:

string name = columns[40];
Location type = db.Locations.Where(l => l.name == name).FirstOrDefault();
Location loc = db.Locations.Where(l => l.name == name && l.type == type.type).FirstOrDefault();

Probablemente haya una mejor manera de hacer lo que quiero de un solo golpe, pero esencialmente obtengo el nombre de una columna (esto proviene de un archivo csv), y luego digo, consígame la información de las ubicaciones. Después de esto digo bien, ahora que tengo todo ese jazz, ve a buscarme una ubicación con este nombre y su tipo.

Pero me sale el error:

El método no estático requiere un objetivo

El método de nivel superior en el que se ejecuta este código es:

static void Main(string[] args){}

Esencialmente es solo una aplicación de consola. Entonces, ¿qué está pasando?

db Es la clase de contexto, esto debería ser obvio.columnas soy yo quien extrae los datos del archivo csv, en este caso las columnas [40] serían algo así como "Nueva York"

Mensaje de error completo de la traza de la pila: {"El método no estático requiere un objetivo."}

Nota: La pregunta publicada como "respuesta posible" no ayuda en este caso, ya que el método principal en el que estoy ejecutando este código es estático.

Tras una investigación adicional, encontré que el nombre y el tipo eran nulos, así que hice la siguiente corrección:

if (name != null)
{
    Location type = db.Locations.Where(l => l.name == name).FirstOrDefault();
    Location loc = db.Locations.Where(l => l.name == name && l.type == type.type).FirstOrDefault();
    locationNearbyId = loc.id;

    // More code
}

Por desgracia todavía me sale el error en:Location loc = db.Locations.Where(l => l.name == name && l.type == type.type).FirstOrDefault();

Respuestas a la pregunta(3)

Su respuesta a la pregunta