Jak przekazać parametry połączenia do DbContext w pierwszej kolejności kodu jednostki? Generowanie mojej bazy danych działa poprawnie, gdy zarówno DbContext, jak i parametry połączenia w pliku web.config znajdują się w tym samym projekcie i mają taką samą nazwę. Ale teraz muszę przenieść DbContext do innego projektu, więc testuję przekazanie parametrów połączenia do niego w następujący sposób:
Model i kontekst
public class Dinner
{
public int DinnerId { get; set; }
public string Title { get; set; }
}
public class NerdDinners : DbContext
{
public NerdDinners(string connString)
: base(connString)
{
}
public DbSet<Dinner> Dinners { get; set; }
}
Akcja
public ActionResult Index()
{
var db = new NerdDinners(ConfigurationManager.ConnectionStrings["NerdDinnerDb"].ConnectionString);
var dinners = (from d in db.Dinners
select d).ToList();
return View(dinners);
}
Web.Config
<connectionStrings>
<add name="NerdDinnerDb" connectionString="Data Source=|DataDirectory|NerdDinners.sdf" providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
Jeśli ustawię punkt przerwania w akcji i przeanalizuję db
, ciąg połączenia tam jest, ale nie tworzy ani nie znajduje bazy danych ani niczego.
Podczas nawiązywania połączenia z programem SQL Server wystąpił błąd związany z siecią lub wystąpieniem. Serwer nie został znaleziony lub nie był dostępny. Sprawdź, czy nazwa instancji jest poprawna i czy SQL Server jest skonfigurowany do zezwalania na połączenia zdalne. (dostawca: dostawca nazwanych potoków, błąd: 40 - nie można otworzyć połączenia z programem SQL Server)