Ciao, non vorrei sbagliarmi ma mi pare che non esista un provider Sql CE per .NET Standard. Puoi postare un link alla pagina in cui è scritto che è supportato? Secondo me, se anche riuscissi ad usare un provider tipo
questo, la tua applicazione non sarebbe multipiattaforma e funzionerebbe solo sul .NET Framework "full".
Se hai bisogno di un database su file, dovresti assolutamente usare Sqlite, su cui Entity Framework Core è supportato. Penso non ci sia motivo di preferire Sql CE se non per il fatto che hai già un database e stai migrando da un'applicazione ASP.NET tradizionale. Anche in questo caso potresti migrare lo schema con qualche tool o usando il reverse engineering di EF6 per generarti un entity model code-first.
dove andrebbe messo il db.sdf a nelle cartelle di progetto
Scegli tu una cartella, ad esempio lo puoi mettere sotto /data. Il database non potrà essere scaricato perché solo i file statici che si trovano nella cartella wwwroot saranno raggiungibili tramite richiesta web. Questa cartella è detta la "webroot", per cui tutto quello che si trova al di fuori è irraggiungibile da HTTP.
In ASP.NET tradizionale invece era il contrario: ogni file statico è scaricabile a meno che non si trovasse in App_Data (o in altre eventuali cartelle configurate come hidden segment).
ciao,
Moreno