Я хотел бы использовать код EF сначала с SQL Server CE 4 из проекта ASP.NET MVC, но вместо моей базы данных, созданной в папке App_Data
, я получаю новую базу данных в экземпляре SQL Server Express, установленном на моей рабочей станции.Как я могу заставить Entity Framework сначала использовать SQL Server CE при установке SQL Server Express?
Как я могу получить базу данных, созданную в папке App_Data
?
web.config
:
<connectionStrings>
<add name="NerdDinners" connectionString="Data Source=|DataDirectory|NerdDinners.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
Context
класс:
public class NerdDinners : DbContext
{
public DbSet<Dinner> Dinners { get; set; }
public DbSet<RSVP> RSVPs { get; set; }
}
Edit 1
Я попытался остановить SQL Server Express, думая, что может заставить использовать SQL Server CE, но это привело к ProviderIncompatibleException
с внутренним исключением
{"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)"}
Так что, похоже, моя установка хочет использовать SQL Server Express.
Edit 2 Было высказано предположение, что я явно передать имя строки подключения к DbContext поэтому я изменил свой контекст класс к следующему:
public class NerdDinners : DbContext
{
public NerdDinners() : base("NerdDinners") { }
public DbSet<Dinner> Dinners { get; set; }
public DbSet<RSVP> RSVPs { get; set; }
}
В DinnersController, это как контекст инстанцировано:
public class DinnersController : Controller
{
private NerdDinners db = new NerdDinners();
//
// GET: /Dinners/
public ViewResult Index()
{
return View(db.Dinners.ToList());
}
После внесения этих изменений, БД по-прежнему создаются в SQL Server Express, так что кажется, что моя строка соединения игнорируется.
у вас он настроен, как указано выше, и не получить файл sdf, отображаемый в bin/debug? –
@ Adam Tuliper - Это правильно. Я получаю новую БД в моем локальном экземпляре SQL Server Express. – DaveB
никаких других строк подключения вообще? Кроме того, установлен sqlce v 4? –