Couper les aubergines en tranches d'environ 1 cm, les saler légèrement et laisser dégorger 30 minutes. Rincer puis sécher.
Faire frire ou griller les tranches d'aubergines dans de l'huile d'olive jusqu'à ce qu'elles soient dorées. Réserver.
Éplucher et couper les pommes de terre en rondelles. Les faire cuire dans de l'eau bouillante salée jusqu'à ce qu'elles soient tendres, puis les égoutter.
Dans une poêle, chauffer un peu d'huile d'olive. Faire revenir l'oignon finement haché et l'ail jusqu'à translucide.
Ajouter la viande hachée, faire dorer. Incorporer les tomates pelées, un peu de sel, de poivre et une pincée de cannelle si désiré. Laisser mijoter 15 minutes.
Préparer la béchamel : faire fondre le beurre, ajouter la farine en remuant, puis verser le lait progressivement en fouettant, jusqu'à épaississement. Retirer du feu et laisser tempérer.
Battre les œufs, puis les incorporer à la béchamel hors du feu. Ajouter le fromage râpé.
Dans un plat allant au four, disposer une couche de pommes de terre, puis une couche d’aubergines, suivi de la sauce à la viande. Répéter l’opération si nécessaire.
Verser la béchamel sur le dessus, lisser la surface.
Enfourner pendant 45 minutes jusqu’à ce que la surface soit dorée.