Sachverhalt: A. Der italienische Staatsangehörige A._ wurde 1971 in der Schweiz geboren und ist seither im Besitz der Niederlassungsbewilligung. Im Juni 1997 heiratete er eine Schweizerin und am Im Juli 1997 kam die gemeinsame Tochter B._ zur Welt. Zwischen 2000 und 2012 wurde A._ mehrfach strafrechtlich verurteilt: - Mit Strafbefehl des Bezirksamtes Zofingen vom 15. Februar wurde er wegen betrügerischem Warenerhebens, begangen am 14. Oktober 1999, zu 30 Tagen Gefängnis und zu einer Busse von Fr. 300.-- verurteilt. - Das Obergericht des Kantons Solothurn verurteilte ihn am 30. Juni 2006 wegen gewerbsmässigen Betrugs und mehrfacher Urkundenfälschung, beides begangen in der Zeit von 1996 bis 2002, zu einer Freiheitsstrafe von 18 Monaten, bedingt vollziehbar bei einer Probezeit von drei Jahren. - Mit Strafbefehl der Staatsanwaltschaft des Kantons Solothurn vom 3. April 2009 wurde er wegen Veruntreuung, Diebstahl, Betrug, falscher Anschuldigung und Übertretung des Bundesgesetzes vom 4. Oktober 1985 über den Transport im öffentlichen Verkehr (Transportgesetz, TG; AS 1986 1974), alles begangen zwischen 2003 und 2008, zu 480 Stunden gemeinnütziger Arbeit, davon 280 Stunden bedingt vollziehbar bei einer Probezeit von vier Jahren, und zu einer Busse von Fr. 200.-- verurteilt. - Schliesslich verurteilte ihn das Amtsgericht Solothurn-Lebern am 14. Juni 2012 wegen mehrfachen gewerbsmässigen Betrugs, mehrfacher Urkundenfälschung sowie Übertretung des Bundesgesetzes vom 20. März 2009 über die Personenbeförderung (Personenbeförderungsgesetzes, PBG; SR 745.1), alles begangen in der Zeit von 2003 bis 2010, zu einer Freiheitsstrafe von vier Jahren und zwei Monaten sowie zu einer Busse von Fr. 100.--. Im Juli 2002 wies ihn die zuständige Behörde darauf hin, dass Ausländer, die strafbare Handlungen begehen, aus der Schweiz weggewiesen werden können. B. Das Migrationsamt des Kantons Solothurn widerrief am 11. Juli 2014 die Niederlassungsbewilligung von A._ und wies ihn aus der Schweiz weg. Eine gegen diese Verfügung gerichtete Beschwere wies das Verwaltungsgericht des Kantons Solothurn mit Urteil vom 25. März 2015 ab. C. A._ gelangt mit Beschwerde in öffentlich-rechtlichen Angelegenheiten an das Bundesgericht. Er beantragt, das Urteil des Verwaltungsgerichts sei aufzuheben und ihm die Aufenthaltsbewilligung EU/EFTA zu erteilen. Eventualiter sei die Sache zur neuen Beurteilung an die Vorinstanz zurückzuweisen. Der Beschwerdeführer ersucht um unentgeltliche Rechtspflege und Verbeiständung. Der Abteilungspräsident legte der Beschwerde am 15. Mai 2015 antragsgemäss aufschiebende Wirkung bei. Das Verwaltungsgericht, das Migrationsamt des Kantons Solothurn sowie das Staatssekretariat für Migration (SEM) beantragen, die Beschwerde abzuweisen.