由于netcore2.0集成了Ef,所以我们使用Ef的时候配置一下就行了。
1,配置数据库链接appsetting.json
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"DBSetting": {
"ConnectString": "server=.;database=TestEF;uid=sa;pwd=123456"
}
}
2,写一个model
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace CoreMvc.Models
{
public class Product
{
public int Id { set; get; }
public string Name { set; get; }
}
}
3,写一个DB操作类继承EF操作数据库的DBContext,并设置容器
using CoreMvc.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace CoreMvc.Common
{
public class DB : DbContext
{
public DbSet<Product> Products { set; get; }
public DB()
{ //如果没有数据库,自动创建,有了什么都不干
Database.EnsureCreated();
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ //对于这个上下文重写此方法以配置要使用的数据库(和其他选项)。对于上下文的每个实例调用此方法创建。
//加载appsetting.json
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json").Build();
string connectionString = configuration["DBSetting:ConnectString"];
optionsBuilder.UseSqlServer(connectionString);
base.OnConfiguring(optionsBuilder);
}
}
}
4,写一个controller测试一下
public IActionResult Index()
{
var db = new DB();
db.Products.Add(new Product
{
Name = "红富士"
});
db.SaveChanges();
return View();
}
5,完毕,EF的增删改查就不写了。