问题
win7 下新建 ASP.NET Core web application (.Net Core) + EF Core 启动抛出异常
Could not load type 'Microsoft.Extensions.DependencyInjection.ServiceCollectionExtensions'
解决
在win7下建议 使用ASP.NET Core web application (.Net Framework) + EF6.0 (非EF Core)如下
配置dbcontext注入
public class DataAccessMssqlContent : DbContext
{
public DataAccessMssqlContent(string connString) : base(connString)
{
}
}
public class DataAccessMssqlContentFactory : IDbContextFactory{
public DataAccessMssqlContent Create()
{
return new DataAccessMssqlContent("Server=(localdb)\\mssqllocaldb;Database=JKGisDB;Trusted_Connection=True;MultipleActiveResultSets=true");
}
}
win10下 vs2015 搭建 .net core +ef core
.net core +ef core 建议在win10或者win8 系统下使用。在win7下使用 引入ef core 报错服务无法启动
新建时选择 ASP.NET Core web application (.Net Core)
数据库连接使用框架:
==========sqlserver====
Microsoft.EntityFrameworkCore 测试版本1.0.1
Microsoft.EntityFrameworkCore.Design 测试版本1.0.1
Microsoft.EntityFrameworkCore.SqlServer.Design 测试版本1.0.1
Microsoft.EntityFrameworkCore.SqlServer 测试版本1.0.1
==========mysql====
SapientGuardian.EntityFrameworkCore.MySql 测试版本
DbContext注入配置
在 Startup.cs 中的 public void ConfigureServices(IServiceCollection services) 发放中增加
sqlserver dbcontext注入
//services.AddDbContext(options => options.UseSqlServer(""));
mysq dbcontext 注入 注入前增加引用 //using MySQL.Data.Entity.Extensions;
//services.AddDbContext(options => //options.UseMySQL("",b=>b.MigrationsAssembly("JK.GisManager")));
dbContext 格式
namespace DataAccessMysql{
public class DomainModelMysqlContext : DbContext {
public DomainModelMysqlContext(DbContextOptionsoptions) : base(options) { }
public DbSetDataEventRecords { get; set; }
public DbSetSourceInfos { get; set; }
}
}