Calienta abundante agua en una cazuela. Cuando llegue a un hervor suave, incorpora el bacalao, tapa y cuécelo durante 5 minutos, hasta que se separe en lascas sin deshacerse. Escúrrelo, deja que pierda el exceso de calor y retira piel y espinas.
Corta las patatas en rodajas de aproximadamente 5 mm o en cubos medianos. Cuécelas en agua hasta que estén tiernas, pero mantengan la forma, entre 8 y 10 minutos. Escúrrelas con cuidado y resérvalas.
Calienta el aceite en una sartén amplia y cocina la cebolla a fuego medio-bajo durante 10 a 12 minutos, removiendo de vez en cuando. Debe quedar blanda y translúcida, sin bordes oscuros ni olor crudo.
Derrite la mantequilla en una cazuela. Añade la harina y remueve durante 1 minuto para cocinarla sin que tome color. Incorpora poco a poco la leche y la nata calientes, batiendo para evitar grumos. Cocina de 5 a 7 minutos, hasta que la salsa cubra el dorso de una cuchara. Ajusta la sal y retira del fuego.
Precalienta el horno a 190 °C. Mezcla con suavidad el bacalao desmenuzado con la cebolla pochada y distribúyelo en una fuente de aproximadamente อก 30 x 20 cm. Reparte las patatas por encima y cubre todo con la bechamel. Espolvorea el queso de manera uniforme.
Hornea la fuente durante 15 minutos y continúa de 5 a 10 minutos más, hasta que la salsa burbujee en los bordes y el queso esté dorado. Si la superficie toma color demasiado pronto, cúbrela con aluminio.
Retira la fuente del horno y déjala reposar 5 minutos. Sirve las porciones cuando la bechamel se haya asentado, pero aún conserve el calor.