【发布时间】:2017-09-04 10:10:23
【问题描述】:
我正在使用 ASP.NET Core 1.1 和 Entity Framework 6 来连接到 SQL Server Compact 3.5 数据库。在创建DbContext 时如何配置要使用的提供程序?
MyDbContext.cs
public class MyDbContext: DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// omitted
}
public static DbMasContext Create(string connString)
{
var entityBuilder = new EntityConnectionStringBuilder();
entityBuilder.ProviderConnectionString = connString;
entityBuilder.Provider = "System.Data.SqlServerCe.3.5";
return new DbMasContext(entityBuilder.ConnectionString);
}
}
Startup.cs
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddScoped(_ => DbMasContext.Create(Configuration.GetConnectionString("MyDbContext")));
}
// omitted
}
appsettings.json
{
"ConnectionStrings": {
"MyDbContext": "DataSource=C:\\MyDb.sdf;Max Database Size=2048;",
}
}
我的代码导致了这个错误:
ArgumentException:不支持关键字:'provider'
【问题讨论】:
-
entityBuilder.ConnectionString的值是多少 -
provider=System.Data.SqlServerCe.3.5;provider connection string="DataSource=C:\MyDb.sdf;Max Database Size=2048;"
标签: c# asp.net-core entity-framework-6 sql-server-ce-3.5