The connection string dependency is not something i see as violating the separation of concerns. The start projects Knows the environment. BUT:
if you want to avoid having connection strings you can create contexts passing in connection Info
public class MyContext : DbContext
public MyContext(DbConnection dbConnection, bool contextOwnsConnection)
: base(dbConnection, contextOwnsConnection)
I also have EF as a package referenced so it can be loaded.
<package id="EntityFramework" version="6.0.1" targetFramework="net45" />
But I just checked with Resharper. It can be safe deleted. So i dont have code references to EF. Just an environmental load/package reference.
Not breaking the code separation Domain driven development paradigm in my view