新建项目:
添加EF:
执行连接语句
Scaffold-DbContext "Server=120.79.***.238;Database=CateDB;uid=sa;pwd=*****.;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir DAL
注:执行这一步的时候出现了点问题 ,因为系统是win7,powershell版本太低了,不支持这个命令,需要安装3.0以上的powershell版本才行
1.Download from http://www.microsoft.com/en-us/download/details.aspx?id=34595
2. 安装Windows Management Framework 3.0的6.1内核版本安装文件(Windows6.1-KB2506143-x64.msu)。
3.重启
生成如下文件:
修改文件:
CateDBContext.cs 中 将:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { #warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings. optionsBuilder.UseSqlServer(@"Server=*****;Database=CateDB;uid=sa;pwd=*****.;"); } }
替换成:
public CateDBContext(DbContextOptions<CateDBContext> options) : base(options) { }
Startup.cs 中 将:
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); }
修改成:
public void ConfigureServices(IServiceCollection services) { services.AddDbContext<CateDBContext>(option => { option.UseSqlServer(@"server=******;Database=CMDB;uid=sa;pwd=***.;"); }); services.AddMvc(); }
使用EF,在控制器中:
private CateDBContext _context; public HomeController(CateDBContext context) { _context = context; } /// <summary> /// 查询 /// </summary> /// <returns></returns> public IActionResult Index() { var data = _context.Users.ToList(); return View(); }
其他操作的和在asp.net 里操作ef差不多,在Entity Framework Core (EF Core)有许多新的功能,最令人期待的功能之一就是批处理语句。后面再学学。
View中使用:
顺便提下,发布到IIS遇到的问题:
在windows server 2012 上安装完dotnet-win-x64.1.1.1.exe 和 DotNetCore.1.0.4_1.1.1-WindowsHosting.exe后,没有重启服务器,访问站点报以上错误,解决办法要么重启,要么执行以下两条命令:
net stop was /y
net start w3svc