关于Asp.Net Core +EF Core 2.0 入门相关解说

1、首先用VS2017新建一个Asp.Net Core Web 应用程序项目,然后在我们的项目中安装EF Core程序包,可以通过如下2种方式获取。

1)在Visual Studio中,使用程序包管理控制台输入命令行:

Install-Package Microsoft.EntityFrameworkCore.SqlServer -version 2.0.0

2)在nuget中找 Microsoft.EntityFrameworkCode.SqlServer

安装完成后,定义一个模型(模型是由实体类和数据库会话派生的上下文),例如

public class BaseDbContext : DbContext
{

        public BaseDbContext(DbContextOptions<BaseDbContext> options) : base(options)
        {

        }

        public DbSet<UserInfo> Users { get; set; }

}

对比之前的数据库会话派生的上下文,我们将重写方法OnConfiguring去掉了,在构造函数中声明DbContextoptions变量。接着我们创建一个数据库仓储类

public interface IUserInfoDao : IDao<UserInfo>
{
        
    IList<UserInfo> GetAll();  
}

public class UserInfoDao: IUserInfoDao
{
        private BaseDbContext _dbContext;

        public UserInfoDao(BaseDbContext dbContext)
        {
            this._dbContext = dbContext;
        }

        public override IList<UserInfo> FindAll()
        {  
            
            return this._dbContext.Users.ToList();
            
        }
}

然后通过在Asp.Net Core下的StartUp类中使用依赖注入注册数据库会话上下文

public void ConfigureServices(IServiceCollection services)
{
            string connectionString = Configuration.GetConnectionString("DefaultConnection");

            services.AddDbContext<BaseDbContext>(options => options.UseSqlServer(connectionString));

            services.AddTransient<IUserInfoDao, UserInfoDao>();

            services.AddMvc();  
}

一般数据连接字符串会动态配置,我在appsettings.json文件中配置了ConnectionStrings节点,然后通过Configuration.GetConnectionString获取到它。

最后在控制器中访问仓储类

public class UserInfoController : Controller
{
        private IUserInfoDao _userDao;

        public UserInfoController(IUserInfoDao userDao)
        {
            this._userDao = userDao;
        }

        // GET: /<controller>/
        public IActionResult Index()
        {
            IList<UserInfo> users = this._userDao.GetAll();

            return View();
        }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值